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, |
deveria ser meu cursor.)
Quando você apenas Tabou Spacedo arranjo inicial, obtém o seguinte:
foo |
barr |
foobar |
baz |
Isso é útil, mas não é o que estou procurando. Estou procurando por algum tipo de atalho de teclado que me permita recuar de uma inserção irregular de vários cursor para uma coluna reta.
text-editing
sublime-text
GladstoneKeep
fonte
fonte
Tab
no final de cada linha recua a inserção de vários cursores irregulares em uma coluna reta, mas não é possível obter o mesmo efeito usando o regex. Procurei espaços à direita:\s*$
e os substitui pelo caractere de tabulação:\t
- mas\t
não obtém o mesmo efeito que pressionarTab
manualmente.Respostas:
Você poderia usar o alinhamento sublime da wbond
Pode ser necessário adicionar isso ao seu arquivo de configurações (Preferências> Configurações do pacote> Alinhamento> Configurações-usuário:
Substitua "|" com qualquer caractere que você deseja alinhar.
Edit: Como o mtoast descobriu, adicionar
"\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.Mantenha controlpressionado 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ê verá que os cursores estão alinhados com a posição mais distante do cursor.
Edit2: Adicionar nova linha para
"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).Além disso, se o Alinhamento sublime não conseguir encontrar outra coisa para alinhar, adicionar nova linha para
"alignment_chars"
preencher o final das linhas com espaços (ou tabulações, dependendo das configurações) para corresponder à linha mais longa realçada.fonte
"\n"
(newline) ao meu"alignment_chars"
e obtive o resultado desejado. (Nota: não o adicionei"alignment_space_chars"
, o que causou a exclusão das linhas.) Se você adicionar essa sugestão específica ("n"
) à sua resposta, eu aceito.|
com um único `\`Você também pode fazer isso sem um pacote externo usando um pequeno hack, com apenas um pouco mais de esforço. Aqui está como:
|
representa um cursor nestas instruções.Crie cursores em todas as linhas desejadas usando Ctrl+ Clique ou selecionando um bloco de texto e pressionando Ctrl+ Shift+ L. ( documentos de seleção )
Adicione espaços adicionais ao final de cada palavra, até que cada cursor esteja no ponto ou após o ponto em que você deseja a sua coluna (não importa a distância):
( opcional 1 ) Digite qualquer caractere seguido de um espaço; vamos usar
c
:Pressione Homepara fazer com que os cursores sigam o início das linhas:
Pressione → (right arrow) até que os cursores estejam onde você deseja sua coluna:
Pressione Ctrl+ Shift+ →para selecionar todos os seguintes espaços em branco e
c
, em seguida, pressione Delete:( opcional 1 ) Pressione Deletenovamente para limpar o caractere de espaço em branco extra que adicionamos na etapa opcional.
1 Usamos o
c
caractere seguido por um espaço apenas se houver conteúdo adicional nas linhas que queremos manter. Sem ele, Ctrl+ Shift+ →selecionaria a primeira palavra de qualquer conteúdo adicional nas linhas, tornando a exclusão complicada.fonte
ctrl+shift+right
não trata todos os caracteres de forma consistente, portanto, pode acabar selecionando mais do que apenas espaço em branco.Shift-End
Delete
e funcionou. Funciona em alguns casos, mas não em outros?c
linha estiver antes do final da palavra na outra. Qual é o problema que estou tendo agora? Certas linhas não contêm caracteres suficientes para rolar para a direita; portanto, quando você faz isso, passa para a próxima linha, deixando esse hack exatamente assim. Este é um hack, não é um substituto útil.Para aqueles que desejam recuar em caracteres diferentes de
=
e|
, consegui instalar o pacote Alignment e modificar o arquivoSublime Text > Preferences > Package Settings > Alignment > Settings - User
para ter a seguinte aparência:Em seguida, selecionei o seguinte código:
e pressionado
Command + Ctrl + A
para alinhá-lo.Tudo foi movido para a coluna mais à esquerda que o
{create
texto poderia ocupar enquanto ainda estivesse alinhado.fonte