Vim - 删除至搜索到的字符串

53

有没有VIM命令/键盘组合可以执行类似dt/mystring的操作(该操作无效)?

dta尝试在当前行上查找字母a,但我想删除搜索字符串之前的所有内容(可能在其他行上)。

4个回答

97

试试这个

d/mystring

它不会删除字符串本身。


4
可以。删除后,您需要按:noh来取消搜索词的高亮显示。是否有一种方法可以删除到搜索字符串而不再突出显示后续搜索结果? - Sudheer

24

d/mystring 删除从开头到 mystring 的所有内容。

编辑:哎呀,太慢了 :/


23

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

dn

n 操作是排他性的,因此您匹配模式的第一个字符不会被忽略。

如果您使用 Easymotion 插件,则可以使用 <leader><leader>t<pattern 的第一个字母(通常 leader 键是反斜杠);然后模式之前的字符将变成一个字母;输入这个字母就完成了。


0

如何在不使用搜索高亮和混乱您的/缓冲的情况下完成它:

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

例如,要删除直到以“function”开头的行:
d:echo seatch('^function')<CR>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接