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.


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".


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.


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.


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.


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"

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.


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
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.