Vim / Sed:仅删除单个空行

时间:2015-12-02 17:57:07

标签: vim sed

如何在sed / vim中删除个空白行?

有几个问题已经解决了Deleting Blank Lines in ViM,但我希望保留多个空行(或单个空行),以便:

this

kind

of


thing

变为

this
kind
of 

thing

3 个答案:

答案 0 :(得分:7)

这个很好用:

:%s/^\n\(^\n\)*/\1/

答案 1 :(得分:0)

另一种方法是使用:g。它不比%s解决方案更快或更好,但感觉它更容易阅读(至少对我来说):

:g /^$/ d

答案 2 :(得分:0)

这可能适合你(GNU sed):

sed '/^\n*$/!b;N;//!D' file

这将删除两个非空行和其他空行之间的空行,或者:

sed '/^\n*$/!b;N;//!D;:a;z;N;//ba' file

如上所述,但这也会将多个空行挤压到一个空行。