在 vim 中,是否可以选择括号内的内容(包括括号),类似于
yi{ yi(
但我想加上括号。
答案1
您可以将光标移到一个括号上,然后执行vf{
或vf(
进入可视模式,然后选择直到(包括)括号的所有内容。
答案2
是的。使用a
而不是i
,因为
ya{
ya(
看
:help a{
:help a(
更普遍地说,
:help text-objects
:help 04.8
答案3
f{v%
或能f(v%
达到你想要的效果吗?它会将光标移动到下一个 { 或 (,进入可视模式,然后将光标移动到相应的结束 } 或 )。如果你已经超出了要选择的范围,则可以使用大写F
。同样可以先跳转到结束 } 或 ) -- f}v%
。
一旦选定了想要的内容,您就可以y
、d
、x
等。该%
命令也适用于多行,因此,如果您愿意,您可以在大块代码上使用此技术(尽管f
和F
不能,因此您必须从第一行或最后一行开始)。
编辑:更好的答案似乎正是您正在寻找的:
ya(
用 替换i
原始命令中的a
可以完成完全相同的操作,只不过它包括'(' 字符。这是“拉动A阻止”,而yi(
“拉动我n内块”。
答案4
我使用vi{
或va{
来选择括号之间的内容。这样做的好处是,在拖拽之前,你可以看到所选内容。