2023-05-29 05:00:04

Vim删除空行

我可以运行什么命令来删除Vim中的空行?


当前回答

我尝试了这一页上的一些答案,但很多都不适合我。也许是因为我在Windows 7上使用Vim(别嘲笑我,可怜可怜我吧:p)?

下面是我在Windows 7的Vim上找到的最简单的方法:

:v/\S/d

在Vim Wikia上有一个更长的答案:http://vim.wikia.com/wiki/Remove_unwanted_empty_lines

其他回答

如何删除所有空白行 : \ n \ n % s, M ^, g (这样做多次直到所有的空行都消失了) 如何删除所有空白行留下单一的空行 : % s。\ n \ n \ n, M ^ ^ M g (重复多次) 如何删除所有空白行留下两个空行在最大, : % s。\ n \ n \ n \ n, M M ^ ^ ^ M g (重复多次)

为了输入^M,我必须在窗口中control-Q和control-M

找到了,它是:

g/^\s*$/d

来源:vim wikia中g的幂

简要说明 (范围):g /模式/ cmd 它作用于指定的[范围](默认的整个文件),通过对每一行匹配模式执行Ex命令cmd (Ex命令是以冒号开头的命令,例如:d表示delete)。在执行cmd命令前,“。”被设置为当前行。

:g/^$/d

:g将在匹配正则表达式的行上执行命令。正则表达式是'blank line',命令是:d (delete)

这招对我很管用:

:%s/^[^a-zA-Z0-9]$\n//ig

它基本上会删除所有没有数字或字母的行。因为列表中的所有项目都有字母,所以它删除了所有的空行。

在插入模式下按delete键删除空行。