Vim删除空行

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

:g/^$/d 

:g将在与正则expression式匹配的行上执行一个命令。 正则expression式是'空行',命令是:d (删除)

发现它,它是:

 g/^\s*$/d 

来源: vim wikia的g权力

 :v/./d 

要么

 :g/^$/d 

要么

 :%!cat -s 

以下内容可用于删除多空白行(将它们缩减为单个空白行)并保留单个空白行:

 :g/^\_$\n\_^$/d 
  1. 如何删除所有的空白行

     :%s,\n\n,^M,g 

    (多次这样做,所有的空行都消失了)

  2. 如何删除所有空白行离开单行空行

     :%s,\n\n\n,^M^M,g 

    (多次这样做)

  3. 如何删除所有空白行,在最大空白处留下两条空行,

     :%s,\n\n\n\n,^M^M^M,g 

    (多次这样做)

为了input^ M,我必须在窗口中控制-Q和控制-M

怎么样:

 :g/^[ \t]*$/d 

在vim中使用perl:

:%!perl -pi -es/^\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> 

我在这个页面上尝试了一些答案,但是其中很多不适合我。 也许是因为我在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行之间的所有空行。 我想我的答案是最好的答案!

如果有东西有双行间隔你的文本,那么这个命令将删除双重间距并合并预先存在的重复空白行到一个空白行。 它在行的开始处使用^^^的临时分隔符,所以如果这与您的内容冲突,请select其他内容。 只包含空格的行被视为空白。

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

这对我工作:

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

它基本上删除所有没有数字或字母的行。 由于我列表中的所有项目都有字母,所以删除了所有的空白行。

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