Emacs 26.1
In buffer
1
2
3
4
I use command "delete-blank-lines
". But it NOT delete ALL BLANK LINES. It's delete ONLY ONE BLANK LINE.
Why?
I need to delete ALL BLANK LINES. The result must be like this:
1
2
3
4
Emacs 26.1
In buffer
1
2
3
4
I use command "delete-blank-lines
". But it NOT delete ALL BLANK LINES. It's delete ONLY ONE BLANK LINE.
Why?
I need to delete ALL BLANK LINES. The result must be like this:
1
2
3
4
From MasteringEmacs.com By Mickey Petersen:
This is a frequent question so I figured I’d mention the solution here:
You want to remove all empty (blank) lines from a buffer. How do you do it? Well, it’s super easy.
Mark what you want to change (or use
C-x h
to mark the whole buffer) and run this:
M-x flush-lines RET ^$ RET
And you’re done. So what does that mean? Well,
M-x flush-lines
will flush (remove) lines that match a regular expression, and ^$ contain the meta-characters ^ for beginning of string and $ for end of string. Ergo, if the two meta-characters are next to eachother, it must be a blank line.We can also generalize it further and remove lines that may have whitespace (only!) characters:
M-x flush-lines RET ^\s-*$ RET
In this case
\s-
is the syntax class (typeC-h s
to see your buffer’s syntax table) for whitespace characters. The*
meta-character, in case you are not a regexp person, means zero or more of the preceding character.