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?

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


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+$


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


10

Uma solução Localizar / Substituir:

Regex Find:\s+

Substitua por: // espaço único


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}


7

Eu tive que usar:

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

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


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


5

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


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


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.


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.


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.


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.


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



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

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.


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


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.