Remova linhas vazias no texto usando o Visual Studio


Respostas:


174

Desde que o Visual Studio 2012 alterou sua sintaxe regex, as respostas originais de Ala se traduzem no seguinte no VS 2012:

Remover linhas em branco únicas

Velho:

^:b*$\n

Novo:

^(?([^\r\n])\s)*\r?$\r?\n

Visual Studio 2013 (graças a BozoJoe e Joe Johnston):

^\s*$\n

Remova linhas em branco duplas

Velho:

^:b*\n:b*\n

Novo:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Rola direto da sua língua.

Aqui está a planilha de conversão do MSDN.


13
vs2013: ^ \ s + $ \ n
BozoJoe 19/03/2014

A resposta de BozoJoe, para mim, também funcionou bem no VS2012 (Atualização 4)
BertuPG

5
^ \ s + $ \ n alterado para ^ \ s * $ \ n permitem feeds de linha pura (sem conteúdo).
31515 Joe

4
Como posso automatizar isso, como trabalhar com CTRL + K + D?
ErTR

Isso deve funcionar para seqüências de caracteres ou para código no editor?
Kyle Delaney

114

É muito útil, especialmente se você deseja organizar ou comparar códigos. Obrigado pelas pessoas que responderem a essa pergunta, eu tenho a resposta daqui e gostaria de compartilhá-la com o Stackoverflow:

O Visual Studio tem a capacidade de excluir linhas vazias na operação de substituição usando expressões regulares.

  • Clique Ctrl- H(substituição rápida)

  • Marque "Usar expressões regulares"

  • Em Localizar, especifique ^$\n

  • Na caixa Substituir, exclua tudo.

  • Clique em "Substituir tudo"

Todas as linhas vazias serão excluídas.

A expressão regular para linha vazia consiste em

Início da linha ^

Fim da linha $

Quebra de linha \n

Observe que normalmente no Windows um final de linha indicado por 2 caracteres - \rAvanço de linha (CR, ASCII 13, ) Alimentação de linha (LF, ASCII 10 \n).

Um regex para remover linhas em branco que estão / não estão realmente em branco (ou seja, elas possuem / não têm espaços): ^:b*$\n

Para remover linhas duplas: ^:b*\n:b*\nsubstitua por:\n

* para Visual Studio 2013 e superior: *

^\s*$\n

e para linhas duplas:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\r?\n

Veja as atualizações de sintaxe de expressão regular para o VS2012 e acima na resposta da @ lennart abaixo


Funciona como um encanto com a limpeza de arquivo XML no Visual Studio 2015. Alguém sabe como criar um atalho para executar isso?
precisa

1
para o Visual Studio 2012 e, acima de verificar a resposta abaixo
Alaa

1
Existe uma maneira de isso funcionar com o formatador automático?
Kyle Delaney

19

No Visual Studio 2013 (Versão 12.0.20623.01), removi as linhas vazias com esta expressão regular. ^\r\nNa tela, você pode ver as linhas correspondentes indicadas pelos quadrados marrons.

Visual Studio 2013 substitui linhas vazias


Eu também tentei dessa maneira, mas o estúdio visual congelou por alguns minutos e substituiu apenas 1 ocorrência de várias centenas que tenho! lol: -D
BertuPG


17

Usando o Visual Studio 2017 e superior

no documento atual

use atalho

  • Abra Ferramentas > Opções ou pressione Alt+ T+O
  • Na guia Ambiente > Teclado
  • Procure por " DeleteBlank " e selecioneEdit.DeleteBlankLines
  • Adicionar um novo atalho por exemplo Ctrl+ D, Ctrl+E
  • Atribuir > OK

selecione todo o texto e pressione o atalho

insira a descrição da imagem aqui


Isso exclui apenas as linhas em branco selecionadas ou da linha atual até a próxima linha que não estiver em branco. Não é para todo o documento ou projeto.
Jan

1
Tente selecionar tudo antes de executar o comando, e ele funcionará.
Kris Morness 01/10/19

9

Para remover duas ou mais linhas vazias adjacentes com o VS2012, use o seguinte:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n

Eu estava procurando uma solução para substituir duas linhas vazias em apenas uma. Funciona para mim. Obrigado!
Ricardo França

8

Estou usando o visual studio 2017, e nenhum dos itens acima funcionou para mim até que tentei \n\r

Passos:

  1. Ctrl + H (abre a localização e a substituição)
  2. Selecione usar expressão regular (Alt + E)
  3. Entre \n\rna entrada "Localizar ..."
  4. Pressione substituir


2

Instale o CodeMaid e pressione Ctrl+M, Space' to clean up the code. (It formats the code, like Format DocumentCtrl + E, D` também). Você pode limpar mais arquivos no Gerenciador de Soluções.


1

No VS 2012, a cadeia de caracteres regex a ser usada para encontrar e substituir todas as linhas em branco é ^ (? ([^ \ R \ n]) \ s) \ r? \ N


0

Ctrl+ K, Ctrl+ Dformata automaticamente o documento atual e isso remove espaço desnecessário no seu código. Isso ajuda a manter seu código legível, se é o que você estava procurando.


Estou referenciando meu problema, por favor, veja, isso é algo que eu estava procurando. stackoverflow.com/questions/44747909/… .
Vivek Shukla

1
Isso não remove linhas vazias duplas / redundantes.
Jan
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.