交互式编辑Vim缓冲区时,如何通过 single 替换命令将一行空行替换为多个空行(真正为空或包含可选空格)的每个序列 - 最好不要从非空行中删除任何尾随空格......?
当然,这些多个“空”行的块可能存在于缓冲区中的任何位置,包括缓冲区的开头和结尾。
因为我只想跟踪Vim处理正则表达式的方式可能存在的误解,涉及某种形式或其他迭代的解决方案(Vim的“:global”命令,宏,函数等等) 。)不我在寻找什么。
我需要修复一个拼写错误,所以我用CTRL-H来尝试解决它...奇怪的事情发生了:-) 当我点击Enter键进入下一行时,无论我输入什么内容都会被发布 我必须使用编辑按钮添加内容。 @kev:非常有趣 解决方案,我确实有很多问题..但我甚至无法回复你的问题 发布..我刚刚发现我的“声誉”还不够......所以你必须这样做 等到我找到改变它的方法..!我不认为我有任何办法 通过常规邮件列表使用此论坛..?我注意到我有-176 因此,我最初的努力被截断了..哦,好吧..
答案 0 :(得分:3)
您可以使用多行模式:
:%s/^\_s*$//
\_s
匹配空格(包括换行符)
答案 1 :(得分:0)
@xev ..你没有回答这个问题。您的替换命令查找
空行,它用//
替换它们,换句话说就是什么都没有!
您正在删除这些行而不是折叠它们。
如果您认为不是这种情况,只需更改替代品中的//
即可
例如,命令由一串破折号...
:%s/^\_s*$/----------/
你会注意到所有空行都被10个短划线取代!
也许你正在运行一个旧版的Vim?
如果没有,请解释您认为它应该如何运作。