如何解决为什么此vim搜索和替换功能需要多次“运行”才能完全起作用
我正在使用以下vim命令::v/^\w*sub/s/.*\n//g
我希望它摆脱不以sub
开头的任何行,因此我可以快速浏览一下perl脚本中的所有子标题。
它最终可以工作,但是我必须“运行”该命令8次,以便它只保留正确的行。为什么它不能在第一次就起作用?不确定是否重要,但是文件大约是1600行,它是从第一次删除〜700开始,但最后一次只有最后2个。
解决方法
:help :g
和:help :v
分两步工作:
- 他们在每条匹配的行上都打上内部标记,
- 它们为每个标记的行执行给定的操作。
这里的问题是,您告诉Vim在标记的行上执行的操作与:v
设置的内部标记相混淆。由于某些标记丢失了,因此:v
无法对其执行给定的操作。
为进行比较,请看一下以下结果:
:v/^\w*sub/s/.*//g
它不会替换换行符,因此不会与:v
的内部标记混淆,因此可以按预期在每行上进行替换。
:help :s
反正是这项工作的错误工具。正如某人已经评论过的那样,该工作的正确工具是:help :d
:
:v/^\w*sub/d
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。