Vim-选择/取消/删除括号之间的内容,包括括号


31

在vim中,是否可以在括号之间选择内容,包括括号,类似于

yi{ yi(

但是我想把方括号包括在内。

Answers:


0

您可以将光标移到一个括号上,然后执行vf{vf(使您进入可视模式,然后选择所有内容,直到(包括)该括号为止。


5
实际上,最终只选择了开括号。如果您位于开括号的顶部,f{则将您移至最接近的开括号(您已在其中)。您可能想要的是v%将您带到匹配的支架上,并且可以在任一侧使用。
Michael Mior 2014年

这不是正确的答案。请参阅下面的@garyjohn的答案。
Michael Sandman

75

是。使用a代替i,如

ya{
ya(

看到

:help a{
:help a(

更一般地说,

:help text-objects
:help 04.8

1
这应该是公认的答案!
phanhuy152 '18

3

f{v%f(v%做你想要的?它将光标移至下一个{或(,进入可视模式,然后将光标移至相应的结束}或)。如果您已经超出了要选择的范围,则可以使用大写字母F。同样也可以很好地跳到}或)开头f}v%

一旦你有你想要选择什么,你可以ydx,等它。该%命令的工作多行,所以你可以,如果你想使用这种技术对大块的代码(虽然fF没有,所以你必须开始对第一或最后一行)。

编辑:更好的答案,似乎正是您在寻找:

ya(

更换i你原来的命令a做同样的事情,不同的是它包含的“(”字符,这是“唬弄一个块”,而yi(在“滥竽充数的 nner块”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.