Vim - 删除最多搜索到的字符串
是否有一个 VIM 命令/组合键可以执行类似 dt/mystring 的操作(这不起作用)?
dta
尝试在当前行上查找字母a
,但我想删除搜索字符串之前的所有内容(可能在其他行上) 。
Is there a VIM command / key combination that would do something like dt/mystring
(which doesn't work)?
dta
tries to find letter a
on current line, but I'd like to delete everything up to searched string (possibly on some other line).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
试试这个
它不会删除字符串本身。
Try this
It won't delete the string itself.
d/mystring
删除mystring
之前的所有内容编辑:aww,太慢了:/
d/mystring
deletes everything up tomystring
Edit: aww, too slow :/
格雷格·雷诺兹提供了一个可行的解决方案。
或者,如果已经定义了搜索模式,请使用:
n
动作是独占的,因此模式的第一个字符不会被吃掉。另一种替代方案是使用 Easymotion 插件,您可以使用
t<模式的第一个字母
(通常前导是反斜杠);那么模式之前的字符就会变成一个字母;输入这封信即可完成。Greg Reynolds provided a working solution.
Alternatively if the search pattern is already defined, use:
the
n
motion is exclusive, so the first character of your pattern won't be eaten.Another alternative with the Easymotion plugin you can use
<leader><leader>t<first letter of pattern
(typically leader is backslash) ; then the character just before the pattern will turn into a letter; type this letter and you're done.这是您可以在不突出显示搜索和弄乱
/
缓冲区的情况下执行此操作的方法:例如,删除直到以“function”开头的行:
This is how you can do it without search highlighting and messing your
/
buffer:For instance, to delete until line starting with 'function':