Encontre e substitua por uma nova linha no Visual Studio Code

397

Estou testando o novo editor de código do Microsoft Visual Studio no ambiente Linux Fedora. Gostaria de saber como substituir a nova linha (\ n) no lugar de outro texto.

Por exemplo, tenho texto html como este

<tag><tag> 

que eu gostaria de substituir como

<tag>
<tag>

Em sublime, usaria o padrão regex e localizaria "> <" e substituí-lo por "> \ n <" Como faço isso no Código do Visual Studio?

Sriram
fonte
@RobertMacLean, esta pergunta foi feita antes da pergunta marcada acima #
Sriram
11
@RobertMacLean criando um ciclo duplicado
Kishan Kumar
Você viu isso.? stackoverflow.com/a/50042582/6597375
Deepu Reghunath
Na verdade, não é uma duplicata: a outra pergunta é sobre retorno de carro, essa sobre nova linha, e não, a resposta não funciona para retorno de carro por algum motivo.
Jason Young

Respostas:

581

Na caixa de pesquisa local ( ctrl+ f), você pode inserir novas linhas pressionando ctrl+ enter.

Imagem da pesquisa multilinha na pesquisa local

Se você usar a pesquisa global ( ctrl+ shift+ f), poderá inserir novas linhas pressionando shift+ enter.

Imagem da pesquisa multilinha na pesquisa global

Se você deseja pesquisar multilinhas pelo literal do caractere, lembre-se de verificar o ícone da expressão regular à direita .

Imagem do modo regex na substituição da pesquisa


Nas versões anteriores do código do Visual Studio, isso era difícil ou impossível. As versões mais antigas exigem que você use o modo regex; as versões mais antigas ainda não oferecem suporte à pesquisa de nova linha.

Håkon Egset Harnes
fonte
6
Nem na versão 0.10.3. Mas há uma extensão que pode fazer isso: marketplace.visualstudio.com/items/jmallien.ReplaceWithNewline
rmac
14
Note-se que, enquanto a substituição com caracteres de nova linha é suportado, encontrando caracteres de nova linha ainda não funcionar até github.com/Microsoft/vscode/issues/313 é fixo.
C # Snover
2
Isso não funciona no Mac - que literalmente substitui \ r ou \ n
Naveen Vijay
38
Observe que o modo regex deve estar ativado. Caso contrário, não usará uma nova linha.
Neves
12
regex procurar \\ne substituir com \nobras para mim, usando 1.25.0
Gregor
130

Com o VS Code versão 1.38, você pode pressionar CTRL+ Enterna caixa de localização do editor para adicionar um caractere de nova linha.

insira a descrição da imagem aqui

Com o VS Code versão 1.30, você pode digitar Shift+ Enterna caixa de pesquisa para adicionar um caractere de nova linha sem precisar usar o modo regex.

insira a descrição da imagem aqui

Desde o VS Code, versão 1.3 , a localização do regex suporta caracteres de nova linha. Para usar esse recurso, defina a janela de localização no modo de expressão regular e use \ncomo o caractere de nova linha.

Localização multilinha no VS Code gif

Chique
fonte
Isso me deu um pequeno empurrão na direção certa. Eu precisava da linha vazia para substituir os comentários HTML: <!--[\s\S\n]*?-->E estava faltando o \ n :) #
Guntram 13/10
Estou amando esse recurso, trabalha na busca e substitui os campos também!
SimplyInk
5
Ainda não trabalho no ctrl + shift + pesquisa barra lateral f ... -_-
Xunnamius
61

Na versão 1.1.1:

  • Ctrl+H
  • Verifique o ícone de exp regular .*
  • Procurar: ><
  • Substituir: >\n<
Eric Bole-Feysot
fonte
15
Obrigado por mencionar que você precisa pressionar o ícone regexp!
Paul Chernoch
24

Observe também que, depois de clicar no ícone regex, para substituir o \ntexto por uma nova linha, tive que usar \\ncomo pesquisa e \ncomo substituição.

Stiv Ostenberg
fonte
11
Oi @Stiv ótima dica, mas isso realmente deveria ter sido um comentário, uma vez que não responde à pergunta.
23617 Chic
Pode não ter olhado nos comentários ... essa era a resposta que eu precisava. Obrigado @stiv!
Jack Ryan
16

Uma solução possível seria usar o cursor múltiplo. selecione a parte> <do seu exemplo, use Ctrl+ Shift+ Lou selecione todas as ocorrências. Em seguida, use as teclas de seta para mover todos os cursores entre as tags e pressione enter para inserir uma nova linha em todos os lugares.

Isso não funcionará em todas as situações.

Você também pode usar Ctrl+ Dpara selecionar a próxima correspondência, que adiciona a próxima correspondência à seleção e adiciona um cursor. E use Ctrl+ K Ctrl+ Dpara pular uma seleção.

Bastiaan Deknudt
fonte
Ctrl+Dé ótimo! Pode ser necessário pressionar Ctrl+Fprimeiro e depois de alguns Ctrl+Dsegundos ou pular com Ctrl+K Ctrl+D, você pode pressionar Escpara colocar o cursor em todas as seleções!
CPHPython
4

Na minha versão mac do VS Code, seleciono a seção e o atalho é Ctrl+ jpara remover quebras de linha.

tripleonard
fonte
1

com v1.31.1 no modo RegEx, a funcionalidade Substituir Tudo está quebrada. clicar nesse botão substitui apenas uma instância

ekkis
fonte
1

CTRL+ H, selecione regex (*) e escreva \ n

Versão mais curta: CTRL+ H ALT+ R\ n

TomoMiha
fonte