圆括号外的我知道,我可以通过发出vi'
或vi"
选择引号内/双引号的文本。例如,光标在H
,我可以通过发行vi"
选择文本从Vim中
Hello "World"
选择World
但是,这似乎并没有工作,如果我有
Hello (World)
如果我的光标是在H
,我尽量选择World
使用vi)
,它不起作用。这似乎是唯一的方法是实际将光标移动到括号内并发出vi)
。为什么内选择文本)和“这种方式区别?
圆括号外的我知道,我可以通过发出vi'
或vi"
选择引号内/双引号的文本。例如,光标在H
,我可以通过发行vi"
选择文本从Vim中
Hello "World"
选择World
但是,这似乎并没有工作,如果我有
Hello (World)
如果我的光标是在H
,我尽量选择World
使用vi)
,它不起作用。这似乎是唯一的方法是实际将光标移动到括号内并发出vi)
。为什么内选择文本)和“这种方式区别?
{a
,i
}×{(
,)
,b
}文本对象命令及其 "
,'
,`
同行主要从不同的结果之间的差异的 定义一个块和引号的字符串(见:help v_ab
,:help v_aquote
)。
而后者则是从以前的报价characte文本在当前 线,直到同一条线上下一个(逃跑者除外)R,前者是 第n以前无法比拟的左括号及其 匹配关闭一个之间的文本。简单地说,命令va(
(不计数)就像是 [(v%
- 如果有光标之前没有无与伦比的括号,无论选择什么 。但是,命令va"
无论如何都会扫描当前行以找到匹配的 对引号。
的主要原因是这种行为差异,我想,是引述 字符串,而相比之下,括号,被认为是不嵌套(至少在 角度内置的Vim文本对象)。
要选择在当前行的下一个括号的文本,可以使用
%vi(
或
%va(
包括括号成选择。
+1,这很美,谢谢。 – romainl
不幸的是,这个解决方案只适用于括号而不是任何其他类型的括号。 –
@Daniel:分别使用'%vi [','%vi {','%vi <'等等,分别用于方形,卷曲,角括号等。 –
This comment on Hacker News指向一个脚本理应解决问题。
未经测试,但它是由史蒂夫洛什所以它可能是好的。
我确定这个问题已经回答过,但我找不到它! –