Vim - 删除最多搜索到的字符串

发布于 2024-12-22 14:18:25 字数 143 浏览 4 评论 0原文

是否有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

溺ぐ爱和你が 2024-12-29 14:18:25

试试这个

d/mystring

它不会删除字符串本身。

Try this

d/mystring

It won't delete the string itself.

预谋 2024-12-29 14:18:25

d/mystring 删除 mystring 之前的所有内容

编辑:aww,太慢了:/

d/mystring deletes everything up to mystring

Edit: aww, too slow :/

子栖 2024-12-29 14:18:25

格雷格·雷诺兹提供了一个可行的解决方案。
或者,如果已经定义了搜索模式,请使用:

dn

n 动作是独占的,因此模式的第一个字符不会被吃掉。

另一种替代方案是使用 Easymotion 插件,您可以使用 t<模式的第一个字母 (通常前导是反斜杠);那么模式之前的字符就会变成一个字母;输入这封信即可完成。

Greg Reynolds provided a working solution.
Alternatively if the search pattern is already defined, use:

dn

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.

星星的轨迹 2024-12-29 14:18:25

这是您可以在不突出显示搜索和弄乱 / 缓冲区的情况下执行此操作的方法:

d:echo search('yourpattern')<CR>

例如,删除直到以“function”开头的行:

d:echo search('^function')<CR>

This is how you can do it without search highlighting and messing your / buffer:

d:echo search('yourpattern')<CR>

For instance, to delete until line starting with 'function':

d:echo search('^function')<CR>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文