JohnnyH
JohnnyH

Reputation: 499

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

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.

Upvotes: 40

Views: 47083

Answers (4)

Sofkor
Sofkor

Reputation: 1

I prefer using \s+, which will get one or more (i.e., the + character) whitespace characters (i.e., the \s escape sequence).

The * character will do zero or more, which on some versions can break up the individual words into letters.

Upvotes: 0

Chris
Chris

Reputation: 455

AS my original answer was incorrect, I have found this package which will be suitable for your needs.

The package is called DeleteBlankLines, for Sublime Text 3, has the ability to delete blank lines for the entire document and within the selected text only, all from a key stroke just like you were after.

The package can be found here:

https://packagecontrol.io/packages/DeleteBlankLines

Upvotes: 4

MattDMo
MattDMo

Reputation: 102852

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

Upvotes: 82

Simone
Simone

Reputation: 21272

There is a package called Trimmer. You can install it via Package control.

After you got the package you can use its functionalities. Just highlight the text you want to change (or don't select anything if you want to change the entire file) and then choose:

1) Edit > Line > Delete Empty Lines

2) Edit > Line > Remove Blank Spaces

Alternatively, as Chris's answer already pointed out you can use the classic search & replace functionality that is already present in the editor.

Upvotes: 19

Related Questions