我可以运行什么命令来删除Vim中的空行?
:g/^$/d
:g
将在与正则表达式匹配的行上执行命令。正则表达式是'空行',命令是:d
(删除)
我在这个页面上尝试了一些答案,但其中很多都不适合我。也许是因为我在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/^^^^.*
这对我有用:
:%s/^[^a-zA-Z0-9]$\n//ig
它基本上删除了没有数字或字母的所有行。由于我列表中的所有项目都有字母,因此删除了所有空白行。
发现它,它是:
g/^\s*$/d
:g
的简要说明:[range]g/pattern/cmd
这通过对每个行匹配模式执行Ex命令cmd来执行指定的[range](默认整个文件)(Ex命令是以冒号开头的,例如
:d
用于删除)。在执行cmd之前,“.
”设置为当前行。
:v/./d
要么
:g/^$/d
要么
:%!cat -s
以下内容可用于仅删除多个空行(将它们缩小为一个空行)并保留单个空白行:
:g/^\_$\n\_^$/d
:%s,\n\n,^M,g
(做多次,所有空行都消失了):%s,\n\n\n,^M^M,g
(多次这样做):%s,\n\n\n\n,^M^M^M,g
(多次这样做)为了输入^ M,我必须在windows中控制-Q和control-M
怎么样:
:g/^[ \t]*$/d
在vim中使用perl:
:%!perl -pi -e s/^\s*$//g
这适合我
:%s/^\s*$\n//gc
此函数仅删除两个或多个空行,将下面的行放在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>