我可以运行什么命令来删除Vim中的空行?
当前回答
:v/./d
or
:g/^$/d
或
:%!cat -s
其他回答
:g/^$/d
:g将在匹配正则表达式的行上执行命令。正则表达式是'blank line',命令是:d (delete)
以下命令可以用来删除多个空行(将它们减少为单个空行),并保留单个空行:
:g/^\_$\n\_^$/d
找到了,它是:
g/^\s*$/d
来源:vim wikia中g的幂
简要说明 (范围):g /模式/ cmd 它作用于指定的[范围](默认的整个文件),通过对每一行匹配模式执行Ex命令cmd (Ex命令是以冒号开头的命令,例如:d表示delete)。在执行cmd命令前,“。”被设置为当前行。
我尝试了这一页上的一些答案,但很多都不适合我。也许是因为我在Windows 7上使用Vim(别嘲笑我,可怜可怜我吧:p)?
下面是我在Windows 7的Vim上找到的最简单的方法:
:v/\S/d
在Vim Wikia上有一个更长的答案:http://vim.wikia.com/wiki/Remove_unwanted_empty_lines
如何删除所有空白行 : \ n \ n % s, M ^, g (这样做多次直到所有的空行都消失了) 如何删除所有空白行留下单一的空行 : % s。\ n \ n \ n, M ^ ^ M g (重复多次) 如何删除所有空白行留下两个空行在最大, : % s。\ n \ n \ n \ n, M M ^ ^ ^ M g (重复多次)
为了输入^M,我必须在窗口中control-Q和control-M
推荐文章
- 如何在Vim注释掉一个Python代码块
- 如何在可视块模式插入?
- 强迫自己掌握vi的最好方法是什么?
- 如何回到行之前编辑的最后一个在Vim?
- 如何跳转到一个特定的人物在vim?
- 如何删除一个大的文本块而不计算行?
- 在Vim/Vi中,如何将光标移动到前一个单词的末尾?
- 如何在vim中自动删除尾随空格
- 为什么Vim使用~扩展名保存文件?
- 如何在Vim或Linux中将空格转换为制表符?
- 我如何使用vimdiff来解决git合并冲突?
- 在Vim中删除当前缓冲区的文件名/路径
- Git在终端提交时打开VIM,但无法返回终端
- 请参阅编辑器中的换行符和回车
- 如何在NERDTree中显示隐藏文件(以句点开始)?