Nick
Nick

Reputation: 8309

Sublime Text 2: How to delete blank/empty lines

Let's say I had a text file with the following nine lines:

foo

bar

baz

qux

quux

How can I use Sublime Text 2 to remove all four of the blank/empty lines, leaving only five lines?

Upvotes: 316

Views: 293004

Answers (19)

Hugo Corrá
Hugo Corrá

Reputation: 14799

Select the text

Press:

  • Ctrl + H on PC, or
  • command + option + F on Mac or
  • Click Find->Replace.

Make sure you have selected 'regular expression' by pressing:

  • Alt + R on PC or
  • command + option + R on Mac or
  • Click .* in the Find box.

Find what: ^\n or ^(\r|\n\r?)

Replace With: (nothing, leave in blank).

Upvotes: 755

Naeem Ijaz
Naeem Ijaz

Reputation: 825

To find extra spaces and blank lines press Ctrl+Shift+F Select Regular Expressions Find

[\n\r]{2,}

and then replace with

\n

to remove all kind of spaces in sublime and dreamviewr

Upvotes: 1

Samuel Wahome
Samuel Wahome

Reputation: 61

Simpler than I thought. Ctrl + A Followed by Ctrl + H Then Select Regular Expression .* . Replace \n\n with \n. Voila!

Upvotes: 6

Clayton Loudon
Clayton Loudon

Reputation: 1

Using find / replace, try pasting a selection starting at the end of the line above the blank line and ends at the beginning of the line after the blank. This works for a single blank line. You can repeat the process for multiple blank lines as well. CTRL-H, put your selection in the find box and put a single newline in the replace box via copy/paste or other method.

Upvotes: 0

rsc05
rsc05

Reputation: 3800

Sublime Text 2 & 3

The Comments of @crates work for me,

Step 1: Simply press on ctrl+H

Step 2: press on RegEX key

Step 3: write this in the Find: ^[\s]*?[\n\r]+

Step 4: replace all

Upvotes: 11

Dihia LANASRI
Dihia LANASRI

Reputation: 151

Their is a more easily way to do that without regex. you have just to select the whole text. then go to: Edit--> Permute Lines --> Unique.

That's all. and all blank lines will be deleted.

Upvotes: 9

MetalGodwin
MetalGodwin

Reputation: 3860

In my case some empty lines contained the unicode character zero width space (U+200b). To rid empty lines, including the ones with this unicode character:

\s\x{200b}|^\s

Upvotes: 0

Dick
Dick

Reputation: 49

Another way, you can use the command line cc.dbl of ConyEdit (a plugin) to delete blank lines or empty lines.

Upvotes: 2

Yogesh Mistry
Yogesh Mistry

Reputation: 2152

There is a wonderful package (for Sublime 2 & 3) called 'Trimmer' which deletes empty lines. It also does many other useful things.

Refer this: https://packagecontrol.io/packages/Trimmer

Upvotes: 2

Marshall Z
Marshall Z

Reputation: 21

If ^\n does not work properly ===> try .*[^\w]\n

Upvotes: -1

abs
abs

Reputation: 129

Don't even know how this whole thing works, but I tried ^\s*$ and didn't work (leaving still some empty lines).

This instead ^\s* works for me

{sublime text 3}

Upvotes: 12

herve
herve

Reputation: 3964

For those who are curious of sublime text editor, the unofficial-documentation may be interesting!

Upvotes: 1

Donncha
Donncha

Reputation: 64

There's also "Join lines". If on OSX, select all your text, and press CMD-J a few times, and it will collapse your selection by line, removing the line breaks.

Edit: This approach will leave you with everything on one line, which is not what you asked for.

Upvotes: 1

UserBSS1
UserBSS1

Reputation: 2211

A Find/Replace solution:

Regex Find:\s+

Replace with: //single space

Upvotes: 10

deltab
deltab

Reputation: 2556

Using multiple selections: select one pair of line breaks, then use Quick Find All (Alt+F3), or Quick Add Next (Ctrl+D) repeatedly, to select them all; then hit Enter to replace them with single line breaks.

Upvotes: 3

Brian Joseph Spinos
Brian Joseph Spinos

Reputation: 2244

You are looking for this:

^\n|^\s+$

it will not delete the line, if there is content with white space or tabs in front>

e.g.:

these will not be deleted: ...space... abc

...tab... abc

this will:

...space... ...nothing else...

...tab... ...nothing else...

Upvotes: 4

Bruce Edge
Bruce Edge

Reputation: 2189

I had to use:

replace \n^\s*\n with \n

The https://github.com/NicholasBuse/sublime_DeleteBlankLines plugin did nothing at all.

Upvotes: 7

V-Light
V-Light

Reputation: 3115

There are also some ST2/ST3 Plugins for such tasks. I do like these two:

The first one has two methods for removing empty/unnecessary lines. One of them called Delete Surplus Blank Lines which is cool. It removes only those lines that are followed by another empty line

Upvotes: 25

signalpillar
signalpillar

Reputation: 916

The regexp in Hugo's answer is correct when there is no spaces in the line. In case if there are space regexp can be ^\s+$

Upvotes: 72

Related Questions