In Sublime Text 3: is there a shortcut to remove blank lines in a selected text? (same for blanks in a line)

JohnnyH picture JohnnyH · Jan 5, 2017 · Viewed 35.5k times · Source

My question is very simple:

Is there a shortcut in Sublime Text 3 which allows to remove blank lines in a selected text? (same for blanks in a line)

For instance, how to make this text:

a

b

c

To become:

a
b
c

And this line:

I need to remove these blanks.

to become this line:

Ineedtoremovetheseblanks.

Answer

MattDMo picture MattDMo · Jan 5, 2017

You don't need a plugin to do this, a simple regex search and replace will do. First, select the text where you'd like to delete the blank lines. Then, select Find → Replace… (or, hit CtrlH on Windows/Linux, F on OS X). Make sure the "Regular Expression" and "In selection" buttons are selected:

find/replace dialog

In Find What:, enter ^\n, and make sure the Replace With: field is empty. Then, simply hit "Replace All" and this:

before replace

becomes this:

after replace

As a bit of explanation, the regular expression ^\n searches for the beginning of a line (^) immediately followed by a newline character (\n). If you suspect that some of your "blank" lines contain whitespace, like space or tab characters, you can use ^\s*\n instead - \s* matches 0 or more whitespace characters, including newline characters.

For your second example, use the same Find/Replace settings as above, except your regular expression should simply be \s*.