Sublime Text 2: Como excluir linhas em branco / vazias

272

Digamos que eu tivesse um arquivo de texto com as nove linhas a seguir:

foo

bar

baz

qux

quux

Como posso usar o Sublime Text 2 para remover todas as quatro linhas em branco / vazias, deixando apenas cinco linhas?

usuario
fonte

Respostas:

658

Selecione o texto

Pressione:

  • Ctrl+ Hno PC ou
  • Command+ Alt+ Fno Mac ou
  • Clique em Localizar-> Substituir.

Verifique se você selecionou 'expressão regular' pressionando:

  • Alt+ Rno PC ou
  • Command+ Alt+ Rno Mac ou
  • Clique .*na caixa Localizar.

Encontre o que: ^\n

Substitua por: (nada, deixe em branco).

Hugo Corrá
fonte
3
Isso funciona, obrigado! Existe uma maneira de vincular a localização / substituição a um atalho de teclado ou de alguma forma salvá-lo para acesso rápido? Eu pesquisei isso e não consegui encontrar nada
Nick
46
Sugestão pequena ^(\r|\n\r?)para cobrir todas as quebras de linha possíveis.
Haris Krajina
5
Para mim (Sublime Text 2) atalho é (Alt + Cmd + F), então como descrever por Hugp Corra
Maxence
24
A melhor maneira de encontrar todas as linhas vazias (incluindo aqueles com espaços em branco) seria: ^[\s]*?[\n\r]+
Caixas
5
@ Crates de que você não precisa ?, pois *também corresponde a zero ocorrências e \s*corresponderá ao '\ r' extra quando, por exemplo, editar texto do Windows em um ambiente Linux, o mesmo ^\s*$acontece com o truque.
drevicko
67

A expressão regular na resposta de Hugo está correta quando não há espaços na linha. Caso exista espaço, regexp pode ser^\s+$

sinal
fonte
32
Isso pressupõe que haja espaço em branco. Além disso, não funcionará para substituir as linhas com nada. Tente em ^[\s]*?[\n\r]+vez disso. Eu testei isso e funciona.
Crates
24

Existem também alguns plugins ST2 / ST3 para essas tarefas. Eu gosto desses dois:

O primeiro possui dois métodos para remover linhas vazias / desnecessárias. Um deles ligou, o Delete Surplus Blank Linesque é legal. Remove apenas as linhas que são seguidas por outra linha vazia

V-Light
fonte
10

Uma solução Localizar / Substituir:

Regex Find:\s+

Substitua por: // espaço único

Usersbs
fonte
3
Na verdade, isso: $ \ s +
kris
8

Nem sei como tudo isso funciona, mas tentei ^\s*$e não funcionei (deixando algumas linhas vazias).

Em vez disso, isso ^\s*funciona para mim

{sublime text 3}

abdômen
fonte
7

Eu tive que usar:

substitua \ n ^ \ s * \ n por \ n

O https://github.com/NicholasBuse/sublime_DeleteBlankLines plug-in não fez nada.

Bruce Edge
fonte
2
Certifique-se de selecionar a área que deseja que ela efetue e use as respectivas teclas de atalho Windows : Ctrl + Alt + Backspace (Excluir linhas em branco) Ctrl + Alt + Shift + Backspace (Excluir linhas em branco excedentes) OSX : Ctrl + Alt + Delete (Linhas Excluir em branco) Ctrl + Alt + Shift + Delete (linhas em branco Apagar) Linux : Ctrl + Alt + Backspace (Apagar linhas em branco) Ctrl + Alt + Shift + Backspace (linhas em branco em excesso Apagar)
Xtremefaith
5

Texto sublime 2 e 3

Os Comentários de @crates funcionam para mim,

Etapa 1: basta pressionar ctrl+H

Etapa 2: pressione a tecla RegEX

Etapa 3: escreva isso em Localizar: ^[\s]*?[\n\r]+

Etapa 4: substituir tudo

rsc05
fonte
5

Mais simples do que eu pensava. Ctrl+ ASeguido por Ctrl+ HEm seguida, selecione Expressão regular .*. Substitua \n\npor \n. Voila!

Samuel Wahome
fonte
3

Você está procurando isso:

^\n|^\s+$

ele não excluirá a linha, se houver conteúdo com espaços em branco ou guias na frente>

por exemplo:

estes não serão excluídos: ... space ... abc

... guia ... abc

Isso vai:

... espaço ... ... nada mais ...

... guia ... ... nada mais ...

Brian Joseph Spinos
fonte
3

Usando várias seleções: selecione um par de quebras de linha e use a Localização rápida de tudo ( Alt+ F3) ou a opção Adicionar rapidamente próximo ( Ctrl+ D) repetidamente, para selecionar todas; depois pressione Enterpara substituí-los por quebras de linha única.

deltab
fonte
1
Em documentos grandes, acho que isso trava Sublime.
Thalecress 31/10/2013
3

É uma maneira mais fácil de fazer isso sem regex. você só precisa selecionar o texto inteiro. então vá para: Editar -> Linhas de Permuta -> Exclusivo.

Isso é tudo. e todas as linhas em branco serão excluídas.

Dihia LANASRI
fonte
Isso excluirá TODAS as linhas não exclusivas. Não apenas espaços em branco. Então, digamos que você tenha HTML com muitas linhas sendo um único fechamento </div>, ele excluirá todas elas, exceto a primeira. Ou no código, ele excluirá todo o seu fechamento}. Não é confiável excluir apenas linhas em branco, entender o que ele faz.
Ivan McA
2

Outra maneira, você pode usar a linha cc.dblde comando do ConyEdit (um plugin) para excluir linhas em branco ou linhas em branco.

Dick
fonte
1

Há também "Unir linhas". Se estiver no OSX, selecione todo o seu texto e pressione CMD-J algumas vezes, e a seleção será reduzida por linha, removendo as quebras de linha.

Edit: Esta abordagem vai deixar você com tudo em uma linha, que não é o que você pediu.

Donncha
fonte
2
Eu vejo para onde você está indo com isso. essa sugestão resulta em arrastar todo o conteúdo em uma linha, mas uma macro faria esse trabalho: (teclas OSX) ctrl-q(macro de registro), cmd-j(linhas de junção) down arrow, ctrl-q(macro de finalização) . Em seguida, shift-ctrl-qrepita quantas vezes for necessário ...
ptim 13/02/2015
1

Para quem está curioso com o sublime editor de texto, a documentação não oficial pode ser interessante!

herve
fonte
0

No meu caso, algumas linhas vazias continham o espaço de largura zero de caracteres unicode (U + 200b). Para livrar linhas vazias, incluindo aquelas com esse caractere unicode:

\s\x{200b}|^\s
MetalGodwin
fonte
0

Usando localizar / substituir, tente colar uma seleção que começa no final da linha acima da linha em branco e termina no início da linha após o espaço em branco. Isso funciona para uma única linha em branco. Você também pode repetir o processo para várias linhas em branco. CTRL- H, coloque sua seleção na caixa de localização e coloque uma nova linha na caixa de substituição via copiar / colar ou outro método.

Clayton Loudon
fonte
0

Para encontrar espaços extras e linhas em branco, pressione Ctrl+ Shift+ F Selecione Expressões regulares e clique em Localizar.

[\n\r]{2,}

e depois substitua por

\n

remover todos os tipos de espaços em sublime e dreamviewr

Naeem Ijaz
fonte
-1

Se ^\nnão funcionar corretamente ===> tente .*[^\w]\n

yuxin Zhang
fonte