我可以让vim删除所有内容,直到下一个模式匹配或 文件结尾吗?
我想搜索模式或文件的结尾(同时),仍然允许回绕(所以不只是this) ,然后允许我 dn 删除直到下一个匹配(然后包括文件的结尾),但我无法弄清楚如何编码|EOF
搜索范围。
也许可以在删除命令的这一个实例中添加一些东西(例如d/Gn
,这不是什么东西)或什么? 喜欢只为这一个命令启用nowrapscan
...
使用案例:当编辑--verbose
git commit消息,其中diff包含在提交消息模板中时,我喜欢在消息中添加关于diff的一部分的注释,删除该代码部分,以及重复直到所有代码差异消失。我搜索^\(@@\|diff\|$\)
,找到新文件(^diff
)或大块(^@@
)或空白行(^$
)的开头,然后可以使用 dn 删除到下一个匹配,这可以正常工作,直到最后一个大块(可能会延伸到屏幕的末尾) - 如果我不小心在那里做了,它会回绕并删除向上< / em>的。很容易撤消和 dG ,但仍然有点烦人。
答案 0 :(得分:4)
您可以使用与文件末尾匹配的\%$
模式。
因此d/x\|\%$
可以删除第一个x
或文件末尾。