Como colar texto no final de cada linha? Sublime 2

159

Estou curioso para saber se existe uma maneira de colar texto no final de cada linha do Sublime 2? E, inversamente, para o início de cada linha.

linha de teste um

linha de teste dois

linha de teste três

linha de teste quatro

...

Digamos que você tenha 100 linhas de texto no editor e deseje colar aspas no início e no final de cada linha.

Existe uma maneira fácil de fazer isso ou um plugin que alguém conhece? Isso geralmente me economizava muito tempo em vários projetos.

Obrigado.

Tony H.
fonte
4
Atualmente esta é a segunda demo na página inicial ... sublimetext.com
TWiStErRob 3/13/13

Respostas:

28

Você pode usar o recurso Pesquisar e substituir por este regex ^([\w\d\_\.\s\-]*)$para encontrar texto e o texto substituído é "$1".

Yohann
fonte
7
Impressionante! Então, achei o seguinte funcionou para mim: Usar regex: (?> \ X0D \ x0A? | [\ X0A- \ x0C \ x85 \ x {2028} \ x {2029}]) encontrará o final de cada linha. E usando regex: ^ [a-zA-z0-9! @ # $ ") (* &! + _-] encontrará o início de cada linha (desde que todos os caracteres sejam adicionados ao regex a serem pesquisados ​​no início de cada Obrigado @yohann!
Tony H.
5
Se você está fazendo isso com uma regex em um editor poderoso como o Vim ou ST2, está perdendo a pista. Por que degradar um editor decente sed?
precisa
Obrigado por salvar 3 horas da minha vida
F. Mayoral
571

Sim, o Regex é legal, mas há outra alternativa.

  • Selecione todas as linhas que você deseja prefixar ou sufixo
  • Ir para o menu Seleção -> Dividir em linhas ( Cmd/ Ctrl+ Shift+ L)

Isso permite editar várias linhas ao mesmo tempo. Agora você pode adicionar * aspas (") ou qualquer coisa * no início e no final de cada linha.

palaniraja
fonte
36
Isso é muito mais fácil de fazer.
Yada
6
Esta é uma resposta muito melhor. Você também pode usar shift (Windows / Linux) ou tecla de opção (Mac) enquanto seleciona uma região com o mouse para obter o mesmo resultado.
dbn
5
Muitas vezes, você pode editar várias linhas como descrito acima, mas depois deseja uni-las novamente em uma única linha. Atalho para unir várias linhas: ctrl / cmd + J
fionbio
3
Essa é uma boa resposta, mas, para contagens de linhas muito grandes, pode consumir muito mais CPU do que usar a localização e substituição.
Ceilingfish
2
Eu acho que isso merece ser a resposta preferida
Michael Osofsky
78

Aqui está o fluxo de trabalho que uso o tempo todo, usando apenas o teclado

  1. Ctrl/ Cmd+ ASelecionar tudo
  2. Ctrl/ Cmd+ Shift+ LDividir em linhas
  3. ' Coloque todas as linhas entre aspas

Observe que isso não funciona se houver linhas em branco na seleção.

Patrick McDonald
fonte
3
não funciona para mim em ST2, passo 3 eliminado todas as linhas e substituiu-o com o "passo 3 deve ser Home" End"
Andrej
@andrej - isso soa como um bug. Verifique se você está usando a versão mais recente do st2 e, se estiver, relate o erro em sublimetext.userecho.com
dbn
1
@dbw correndo sublime texto 2.0.1 construir 2217. Postado como bug em sublimetext.userecho.com/topic/184875-
Andrej
@andrej posso reproduzir o seu problema se eu tiver quaisquer linhas em branco na seleção
Patrick McDonald
52
  1. Selecione todas as linhas nas quais você deseja adicionar prefixo ou sufixo. (Mas se você quiser adicionar prefixo ou sufixo apenas a linhas específicas, poderá usar ctrl+ Left mouse buttonpara criar vários cursores.)
  2. Pressione Ctrl+ Shift+ L.
  3. Pressione a Hometecla e adicione prefixo.
  4. Pressione a Endtecla e adicione sufixo.

Observe, desative o wordwrap; caso contrário, ele não funcionará corretamente se suas linhas forem maiores que a largura do sublime.

atormentar
fonte
2
essa é a correção real. o as chaves finais casa e são cruciais para que isso funcione corretamente
Phil
No Sublime Text 3 (para Mac), as chaves home e final não estavam funcionando para mim. Se você tiver esse problema, verifique: coderwall.com/p/upolqw/…
avance
Na verdade, não @Phil. Você também pode usar Cmd + Seta esquerda / direita para navegar também. Eu acho que o mesmo trabalho vontade em janelas também
Claud H
33

Digamos que você tenha estas linhas de código:

test line one
test line two
test line three
test line four

Usando Search and Replace Ctrl + Hcom Regex Vamos descobrir isso: ^e substitua-o ", teremos o seguinte:

"test line one
"test line two
"test line three
"test line four

Agora vamos procurar isso: $e substituí-lo por ", agora teremos isso:

"test line one"
"test line two"
"test line three"
"test line four"
Tomatrox
fonte
funcionou muito bem no texto sublime 3, toneladas de tempo economizado
jamescampbell
22

Use seleção de coluna . A seleção de colunas é um dos recursos exclusivos do Sublime2; é usado para fornecer vários cursores correspondentes ( tutorial aqui ). Para obter vários cursores, siga um destes procedimentos:

Rato:

  • Mantenha pressionada a tecla Shift (Windows / Linux) ou a opção (Mac) enquanto seleciona uma região com o mouse.

  • Clicar no botão do meio do mouse (ou rolagem) também será selecionado como uma coluna.

Teclado:

  • Selecione a região desejada.
  • Digite control+ shift+ L(Windows / Linux) ou command+ shift+ L(Mac)

Agora você tem várias linhas selecionadas, para poder digitar aspas no início e no final de cada linha. Seria melhor aproveitar os recursos do Sublime e apenas digitar " . Quando você faz isso, o Sublime cita automaticamente o texto selecionado.

Digite escpara sair do modo de cursor múltiplo.

dbn
fonte
3
Você também pode ativar a seleção de colunas clicando e arrastando o meio.
Curtis Gibby
2
Essa é a maneira mais específica de texto sublime para resolver o problema e usa um recurso fundamental do texto sublime. Como o OP perguntou sobre o texto sublime no título, essa deveria ser a resposta aceita.
Driblador 02/02