Como posso selecionar todas as outras linhas com vários cursores no texto sublime?


162

No Sublime Text 2, é possível selecionar instantaneamente todas as outras linhas (ou ímpares / pares) e colocar vários cursores nessas linhas?

Obrigado.


5
Você não quer aceitar uma resposta?
Martin Thoma

Respostas:


381
  1. Localizar: Ctrl+F
  2. Se as expressões regulares não estiverem habilitados, permitir-lhes: Alt+R
  3. Digite a expressão .*\n.*\n
  4. Localizar tudo: Alt+Enter
  5. Pressione a seta esquerda para se livrar das seleções, deixando apenas os cursores:
  6. Agora você tem um cursor no início de cada linha com números ímpares. Se você quiser linhas com números pares, pressione:
  7. Dependendo do arquivo, pode haver um cursor faltando na parte inferior do arquivo. Usando o mouse (caramba!), Role para baixo, mantenha pressionado Ctrle clique em onde o cursor ausente deve estar para adicioná-lo.

83
Você também pode usar (.*\n){10}para cada 10 linhas
Joe Daley

21
Como uma nova melhoria :(.*(\n|$)){2}
zessx

3
legais! @ zessx's(.*(\n|$)){2} solução inclui a última linha #
woojoo666

3
Apenas para observar, no Sublime 2 em execução no OS X 10.11.5, o atalho para a pesquisa RegEx é Alt + Command + R. Você também pode ativar a pesquisa RegEx pressionando Command + F e, em seguida, clicando no ícone mais ou menos assim: [. *]
Lustig

97

Você pode fazer isso facilmente:

  • Selecione todas as suas linhas, ou todo o documento Ctrl+A
  • Adicione vários seletores: Ctrl+ Shift+ L(e no Mac: Command + Shift + L)

EDIT:


12
Embora não seja a resposta certa para esta pergunta, é isso que eu queria. obrigado por compartilhar
Rajani Karuturi

Ótima e simples dica!
filip

5
Essa solução é o que eu precisava, mas não o que o OP quer.
gritou

13

Eu estava procurando uma maneira de selecionar linhas alternativas em sublime.

Obrigado a Joe Daley por uma resposta muito boa. Embora eu tenha percebido que, se você usar regex, ele não selecionará a última linha do arquivo se não houver uma nova linha no final do arquivo.

Eu queria melhorar essa resposta, mas não tenho reputação suficiente no momento para comentar a resposta acima.

Você pode usar a seguinte sequência de caracteres de pesquisa com o regex ativado e, em seguida, pressione alt + enter. Seguido por uma seta esquerda. Isso colocaria um cursor em linhas alternativas (as mesmas etapas explicadas por Joe Daley)

^.*\n.*$

7

Você pode tentar com um plugin: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

Salve este arquivo no seu Packages/User .

Em seguida, adicione a ligação de chave para esse plug-in:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

Este comando selecionará todas as outras linhas. Quando você tiver outras linhas selecionadas, poderá usar o Split selection into linescomando ( Ctrl+ Shift+ L, Cmd+ Shift+ Lno Mac).

Se você quiser ter tudo em um único atalho, poderá modificar o plug-in da seguinte maneira:

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

A última linha é apenas para remover a seleção, deixando vários cursores no início das linhas selecionadas.


1
Uau, isso parece promissor - vou tentar isso o mais rápido possível!
user2136580

Muito obrigado! Eu sou bastante novo para os plugins. Deve ser divertido. Comece a selecionar todas as outras linhas seria simplesmente fantástico. Felicidades!
user2136580
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.