2023-05-29 05:00:04

Vim删除空行

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


当前回答

如果文本有双行距,则此命令将删除双行距,并将已存在的重复空行合并为单个空行。它在一行的开头使用临时分隔符^^^,因此如果这与您的内容冲突,请选择其他内容。只包含空格的行被视为空白。

%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*

其他回答

如果文本有双行距,则此命令将删除双行距,并将已存在的重复空行合并为单个空行。它在一行的开头使用临时分隔符^^^,因此如果这与您的内容冲突,请选择其他内容。只包含空格的行被视为空白。

%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*

这对我很有用

:%s/^\s*$\n//gc

以下命令可以用来删除多个空行(将它们减少为单个空行),并保留单个空行:

:g/^\_$\n\_^$/d

找到了,它是:

g/^\s*$/d

来源:vim wikia中g的幂

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

:g/^$/d

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