Em Sublime Text 2, como posso recuar para uma coluna reta com vários cursores em uma borda irregular?

31

Suponha que eu tenha vários cursores ao longo de várias linhas, assim:

foo|
barr|
foobar|
baz|

Como posso empurrar automaticamente o espaço em branco no final de cada linha para uma borda plana, como esta?:

foo    |
barr   |
foobar |
baz    |

(Nestes exemplos, | é suposto ser meu cursor.)

Quando você apenas a Tab ou Espaço da disposição inicial, você obtém isto:

foo    |
barr    |
foobar    |
baz    |

Isso é útil, mas não é o que estou procurando. Eu estou procurando por algum tipo de atalho de teclado que me permita recuar de uma inserção de vários cursores esfarrapados para uma coluna reta.

    
por GladstoneKeep 14.09.2012 / 21:08

3 respostas

10

Você pode usar o Alinhamento Sublime do wbond

Pode ser necessário adicionar esse item ao seu arquivo de configurações (Preferências > Configurações do pacote > Alinhamento > Configurações-Usuário:

// The mid-line characters to align in a multi-line selection, changing
// this to an empty array will disable mid-line alignment
"alignment_chars": ["=", "|"],
// If the following character is matched for alignment, insert a space
// before it in the final alignment
"alignment_space_chars": ["=", "|"]

Substituir "|" com qualquer personagem que você queira alinhar.

Editar: Como mtoast descobriu, adicionando "\n" a "alignment_chars" dá o efeito desejado. Adicionar o novo caractere de linha a "alignment_space_chars" provavelmente não é necessário e pode excluir o texto. No entanto, com meus testes limitados, não vi diferença.

Segure control e clique no final de cada linha. Em seguida, pressione as teclas de atalho de alinhamento (para linux o padrão é ctrl + alt + a ). Você descobrirá que os cursores estão alinhados com a posição mais distante do cursor.

Edit2: Adicionar nova linha a "alignment_space_chars" excluirá o texto se você destacar um bloco de texto e o Sublime Alignment não encontrar mais nada para alinhar na linha (como um sinal de igual). / p>

Além disso, se o Sublime Alignment não conseguir encontrar algo mais para alinhar, adicionar nova linha a "alignment_chars" preencherá o final das linhas com espaços (ou guias dependendo das configurações) para corresponder à linha mais longa realçada.

    
por 01.10.2012 / 22:17
41

Você também pode fazer isso sem um pacote externo usando um hack secundário, com um pouco mais de esforço. Veja como:

| representa um cursor nestas instruções.

  1. Crie cursores em todas as linhas desejadas usando Ctrl + Clique ou selecionando um bloco de texto e pressionando Ctrl + Deslocamento + L . ( documentos de seleção )

  2. Adicione espaços adicionais ao final de cada palavra, até que todos os cursores estejam no ponto ou no ponto em que você deseja que sua coluna (não importa o quão longe):

    foo     |
    barr     |
    foobar     |
    baz     |
    
  3. ( opcional 1 ) Digite qualquer caractere seguido por um espaço; vamos usar c :

    foo     c |
    barr     c |
    foobar     c |
    baz     c |
    
  4. Pressione Home para fazer os cursores irem ao começo das linhas:

    |foo     c
    |barr     c
    |foobar     c
    |baz     c
    
  5. Pressione → (seta para a direita) até que os cursores estejam onde você deseja sua coluna:

    foo    | c
    barr   |  c
    foobar |    c
    baz    | c
    
  6. Pressione Ctrl + Deslocar + para selecionar todos os espaços em branco e c , depois pressione Apagar :

    foo    |
    barr   |
    foobar |
    baz    |
    
  7. ( opcional 1 ) Pressione Excluir novamente para limpar o caractere de espaço em branco extra que adicionamos na etapa opcional. / p>

1 Usamos o caractere c seguido por um espaço apenas se houver conteúdo adicional nas linhas que desejamos manter. Sem ele, Ctrl + Deslocamento + selecionaria o primeira palavra de qualquer conteúdo adicional nas linhas, tornando a exclusão complicada.

    
por 13.11.2013 / 17:53
0

Para aqueles que querem recuar em caracteres diferentes de = e | , consegui instalar o Alinhamento pacote e modifique o arquivo em Sublime Text > Preferences > Package Settings > Alignment > Settings - User para se parecer com o seguinte:

{
  "alignment_chars": [
    "{create",
   ]
}

Eu selecionei o seguinte código:

  let!(:admin_user) {create(:admin_user, :admin)}
  let!(:another_admin_user) {create(:admin_user, :admin)}
  let!(:superadmin_user1) {create(:admin_user, :superadmin)}
  let!(:superadmin_user2) {create(:admin_user, :superadmin)}
  let!(:nonadmin_user) {create(:admin_user)}

e pressionou Command + Ctrl + A para alinhá-lo.

  let!(:admin_user)        {create(:admin_user, :admin)}
  let!(:another_admin_user){create(:admin_user, :admin)}
  let!(:superadmin_user1)  {create(:admin_user, :superadmin)}
  let!(:superadmin_user2)  {create(:admin_user, :superadmin)}
  let!(:nonadmin_user)     {create(:admin_user)}

Tudo foi movido para a coluna mais à esquerda que o texto {create poderia ocupar enquanto ainda estava sendo alinhado.

    
por 16.08.2017 / 06:11