我可以运行什么命令来删除Vim中的空行?
找到了,是:
g/^\s*$/d
图片来源:在vim wikia上的g的力量
:g的简要说明 :[range]g/pattern/cmd 这作用于指定的[范围](默认的整个文件),通过对匹配模式的每一行执行Ex命令cmd(Ex命令以冒号开头,例如:d表示删除)。在执行cmd之前,“.”设置为当前行。
:g的简要说明
:g
:[range]g/pattern/cmd
这作用于指定的[范围](默认的整个文件),通过对匹配模式的每一行执行Ex命令cmd(Ex命令以冒号开头,例如:d表示删除)。在执行cmd之前,“.”设置为当前行。
:d
.
:g/^$/d
:g将在匹配正则表达式的行上执行命令。正则表达式是“空行”,命令是:d(删除)
:v/./d
或
:%!cat -s
不如:
:g/^[ \t]*$/d
以下方法可用于仅删除多个空白行(将它们减少为单个空白行)并保持单个空白行不变:
:g/^\_$\n\_^$/d
在vim中使用perl:
:%!perl -pi -e s/^\s*$//g
这个函数只删除两个或多个空行,把下面的行放在你的vimrc中,然后使用\d调用函数
fun! DelBlank() let _s=@/ let l = line(".") let c = col(".") :g/^\n\{2,}/d let @/=_s call cursor(l, c) endfun map <special> <leader>d :keepjumps call DelBlank()<cr>
如何删除所有空白行
:%s,\n\n,^M,g
(这样做多次,直到所有的空行消失)
如何删除所有留下SINGLE空行的空行
:%s,\n\n\n,^M^M,g
(重复多次)
如何删除所有空行,在MAXIMUM处留下两行空行,
:%s,\n\n\n\n,^M^M^M,g
为了输入^M,我必须在Windows中控制-Q和控制-M
这对我有效:
:%s/^[^a-zA-Z0-9]$\n//ig
它基本上删除了所有没有数字或字母的行。由于我列表中的所有项目都有字母,它删除了所有的空行。
这对我有用
:%s/^\s*$\n//gc
我尝试了这个页面上的一些答案,但其中很多都不适合我。也许是因为我在Windows 7上使用Vim(不要嘲笑,只是同情我:p)?
这是我在Windows 7中找到的适用于Vim的最简单的一个:
:v/\S/d
以下是Vim Wikia上的较长答案:http://vim.wikia.com/wiki/Remove_unwanted_empty_lines
:g/^\s*$/d ^ begin of a line \s* at least 0 spaces and as many as possible (greedy) $ end of a line
糊
:command -range=% DBL :<line1>,<line2>g/^\s*$/d
在. vimrc中,然后重新启动vim。 如果您使用命令:5,12DBL 它将删除第5行和第12行之间的所有空行。 我认为我的答案是最好的答案!
如果您的文本有双行间距,则此命令将删除双行间距并将预先存在的重复空行合并为单个空行。它在行首使用^^^的临时分隔符,因此如果此与您的内容冲突,请选择其他内容。仅包含空格的行被视为空白。
%s/^\s*\n\n\+/^^^\r/g | g/^\s*$/d | %s/^^^^.*
在插入模式下按删除键删除空白行。