我可以运行什么命令来删除Vim中的空行?
当前回答
我尝试了这一页上的一些答案,但很多都不适合我。也许是因为我在Windows 7上使用Vim(别嘲笑我,可怜可怜我吧:p)?
下面是我在Windows 7的Vim上找到的最简单的方法:
:v/\S/d
在Vim Wikia上有一个更长的答案:http://vim.wikia.com/wiki/Remove_unwanted_empty_lines
其他回答
这对我很有用
:%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>
找到了,它是:
g/^\s*$/d
来源:vim wikia中g的幂
简要说明 (范围):g /模式/ cmd 它作用于指定的[范围](默认的整个文件),通过对每一行匹配模式执行Ex命令cmd (Ex命令是以冒号开头的命令,例如:d表示delete)。在执行cmd命令前,“。”被设置为当前行。
这招对我很管用:
:%s/^[^a-zA-Z0-9]$\n//ig
它基本上会删除所有没有数字或字母的行。因为列表中的所有项目都有字母,所以它删除了所有的空行。
以下命令可以用来删除多个空行(将它们减少为单个空行),并保留单个空行:
:g/^\_$\n\_^$/d