Código do Visual Studio - excluir todas as linhas em branco - regex


133

Passei algum tempo tentando descobrir como excluir todas as linhas em branco no Código do Visual Studio e não consigo fazê-lo funcionar. Alguém sabe como fazê-lo, por favor?

Se eu procurar ^$enquanto digito no campo de pesquisa, o VSC encontra as linhas em branco (linhas completamente em branco, significa que não há espaços em branco), mas não as remove quando pressiono Substituir tudo. Não faz nada: ^ $

Para linhas em branco com espaços, a ^\s+$Pesquisa funciona, mas não as remove. O que ele faz é substituí-los por uma linha em branco sem espaços :)) ^ \ s + $

Deve ser que estou fazendo algo errado. Eu simplesmente não consigo descobrir o que é isso. Alguém sabe? Obrigado.


1
Adicionei um comentário sobre o problema que você abriu sobre isso, mas para qualquer outra pessoa, $na verdade , não corresponde ao novo caractere de linha, ele corresponde a um token de largura zero que existe antes do novo caractere de linha. Para substituir uma nova linha que você precisa usar \n, mas Código VS atualmente não suporta jogos regex multi-linha ( # 313 )
Marie

Obrigado Marie. Parece que temos que esperar um pouco.
Jozefk 7/16

4
Encontre isso no modo regex ^ $ \ n e substitua por branco também funcionará bem. Feliz codificação !!!
rajabhoj Sajal

Respostas:


194

Para aqueles que possam estar interessados ​​- o que funcionou para mim na versão 1.3.1 (e ainda funciona na 1.33.1) para excluir as linhas em branco que usei ctrl+ h(localizar e substituir) alt+ r(usar expressão regular)

Na caixa de localização, então:

\n\n

Na caixa de substituição:

\n

Isso deve transformar dois sinais consecutivos de fim de linha em um.

editado:

Se você precisar substituir mais linhas vazias (mais de duas) ao mesmo tempo, poderá usar a seguinte expressão regular na caixa de localização:

\n+

Se você precisar substituir também linhas vazias por espaços em branco, use a seguinte expressão regular na caixa de localização:

\n+\s*\n

O código VS está usando expressões regulares javascript


10
Nessa linha, eu uso^[\r\n]{3,}
RJ Cuthbertson

Está funcionando agora. Obrigado :) Muitas versões do VSC no meio, mas tudo bem. Substitua \ n \ n por \ n funcionou bem.
Jozefk

Veja também a solução @Dzumret abaixo. Na minha solução, ele exclui apenas linhas onde não há nada. Sua solução exclui linhas onde há também algum caractere de espaço em branco (espaços, tabulações)
23/01/19

Essa resposta não leva todos os casos, o que se você tiver espaços em branco linha
dhaker

1
Ótimo! Para remover mais de uma linha vazia consecutiva, substituí \ n + por \ n. Para acocunt por espaços em branco também substituir (^ \ s * \ n) + com nada
Ilario

113

O que também funciona é esse padrão de regex:

^\s*$\n

Depois, CTRL+Entersubstitua todas as linhas.

Explicação do padrão acima:

-----------------------------------------------
|  ^ | beginning of string anchor             |
-----------------------------------------------
| \s | any whitespace character               |
-----------------------------------------------
| '*'| zero or more repetitions               |
-----------------------------------------------
|  $ | end of string anchor                   |
-----------------------------------------------
| \n | new line                               |
-----------------------------------------------

Não tenho certeza, mas apenas isso funcionou para mim, compare com todas as outras respostas. Bem explicado também. Obrigado.
Sai

Colocar a parte \nexterna das âncoras é o que funcionou para mim. O VSCode então permitiu que ele fosse substituído por nada (campo "substituir por" em branco).
Eric

46

Código do Visual Studio 1.13.0 Linux Lite:

  • Hit CTRL+H
  • Selecione "Usar expressão regular"
  • Caixa de localização: ^ (\ s) * $ \ n (digite o número final \ n conforme necessário)
  • Substituir caixa: vazia
  • Clique em substituir tudo

Linhas vazias se foram!


18

Aqui está o meu regex, ele captura todas as novas linhas e linhas vazias que contêm apenas espaço, guias etc.

\n\s*\n

E substituo todos os jogos por \n

Explicação

\n       : New Line
\s*      : Zero or more consecutive white space characters or new lines
\n       : Another New Line

PS: Lembre-se de escolher a opção regex na janela de pesquisa !!


13

Tente usar ^ \ s * \ n na caixa de diálogo Substituir do VS Code -

Veja aqui


6

não, você está fazendo certo.

Eu tenho o mesmo comportamento aqui.

Eu também tentei outra regex: (\r?\n){2,} mas parece que só funciona para linhas únicas.

talvez exista uma preferência para alterar o comportamento padrão da expressão regular, ou talvez o VS seja apenas construído dessa maneira (com base em linha)

é claro que não é grande coisa copiar e colar de outro editor de texto.


3
Isso me ajudou só depois de eu ter tudo ^\s*$com vazio, então eu tentei(\r?\n){2,}
Mihai Popescu

4

Eu não sei sobre você, mas memorize muitos comandos para mim, parece uma perda de tempo!

Use a extensão "Blank Line Organizer", aqui está a descrição:

Essa extensão ajudará você a organizar linhas em branco no código, removendo várias linhas em branco. A extensão remove linhas em branco apenas das linhas selecionadas, se houver, caso contrário, do arquivo inteiro

Como usar: verifique a descrição da extensão, mas é realmente agradável!

blankLine.triggerOnSave boolean true    If set to true, the command will be triggered on save.

Em outras palavras, após salvar o arquivo, ele limpa automaticamente!


Oi @Jun! Estou usando o Sublime Text3, que resolveu muitos problemas, além de ser mais leve e com alguns recursos interessantes.
Marcelo Agimóvel

qual plugin você usa com o Sublime Text3? Eu costumava usar o Webstorm e ele é incorporado.
Jun711 3/18

Html / CSS / JS Prettify
Marcelo Agimóvel

3

Eu encontrei o seguinte funciona melhor para mim no Visual Studio:

Substituir: por ^\n$ : <no value here>

Isso encontrará todas as linhas vazias e as limpará.


3

No meu caso. A solução kobi7 (\r?\n){2,}só funcionou para mim, tive que executá-la novamente com pequenas modificações para fazê-la funcionar em linhas únicas (alterei apenas 2 para 1)

^(\r?\n){1,}

0

A extensão Code Maid é tudo que você precisa. Você pode usar o atalho Ctrl M + Barra de espaço para limpar seu arquivo. Ele removerá as linhas vazias e formatará o seu código. Você também pode configurar sobre regras de formato e limpeza. Espero que seja útil.


Não encontrado (no Manjaro Linux).
Marcelo Agimóvel

2
Isso ocorre porque é uma extensão do Visual Studio e não uma extensão do Visual Studio Code.
Rene Juuse


0

Existe a minha versão para limpar linhas vazias com espaço em branco:

find:    (?:\s*$(\r?\n)){2,}
replace: $1

-1

Substitua: ^ \ n $ Por: "espaço em branco"


e remover todos os espaços em branco do seu documento?
Angry 84

-4

Windows 10, Visual Studio 2015

Ctrl + H

Localizar ... -> ^ \ s *

Substitua tudo

Ctrl + A

Ctrl + K + F

Obrigado por sua pergunta, eu aprendi algo novo.


5
O Visual Studio 2015 não é um código do Visual Studio.
Robert Kaucher 16/09
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.