关于vi:Vim删除空白行

Vim delete blank lines

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


1
:g/^$/d

:g将在与正则表达式匹配的行上执行命令。正则表达式是"空行",命令是:d(删除)


发现它,它是:

1
g/^\s*$/d

资料来源:vim wikia的权力

Brief explanation of :g

1
:[range]g/pattern/cmd

This acts on the specified [range] (default whole file), by executing the Ex command cmd for each line matching pattern (an Ex command is one starting with a colon such as :d for delete). Before executing cmd,"." is set to the current line.


1
:v/./d

要么

1
:g/^$/d

要么

1
:%!cat -s


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

1
2
:g/^\_$
\_^$/d


  • 如何删除所有空白行

    1
    2
    3
    :%s,

    ,^M,g

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

  • 如何删除所有空白行,留下SINGLE空行

    1
    2
    3
    4
    :%s,


    ,^M^M,g

    (多次这样做)

  • 如何删除所有空行,留下两条空行AT MAXIMUM,

    1
    2
    3
    4
    5
    :%s,



    ,^M^M^M,g

    (多次这样做)

  • 为了输入^ M,我必须在windows中控制-Q和control-M


    怎么样:

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


    这适合我

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


    此函数仅删除两个或多个空行,将下面的行放在vimrc中,然后使用 d来调用函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fun! DelBlank()
       let _s=@/
       let l = line(".")
       let c = col(".")
       :g/^
    \{2,}/d
       let @/=_s
       call cursor(l, c)
    endfun
    map <special> <leader>d :keepjumps call DelBlank()<cr>

    在vim中使用perl:

    :%!perl -pi -e s/^\s*$//g


    我在这个页面上尝试了一些答案,但其中很多都不适合我。也许是因为我在Windows 7上使用Vim(不要嘲笑,只是对我很遗憾:p)?

    这是我发现在Windows 7中适用于Vim的最简单的一个:

    1
    :v/\S/d

    这是关于Vim Wikia的更长答案:http://vim.wikia.com/wiki/Remove_unwanted_empty_lines


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


    1
    2
    3
    4
    :g/^\s*$/d
    ^ begin of a line
    \s* at least 0 spaces and as many as possible (greedy)
    $ end of a line

    1
    :command -range=% DBL :<line1>,<line2>g/^\s*$/d

    在.vimrc中,然后重新启动你的vim。
    如果您使用命令:5,12DBL
    它将删除第5行和第12行之间的所有空行。
    我想我的答案是最好的答案!


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

    1
    2
    3
    4
    %s/^\s*

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

    这对我有用:

    1
    2
    :%s/^[^a-zA-Z0-9]$
    //ig

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