我知道我可以通过发出vi'或者在引号/双引号内选择文本vi".例如,使用光标H,我可以World通过发出来选择vi"
Hello "World"
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,这似乎不起作用
Hello (World)
Run Code Online (Sandbox Code Playgroud)
如果我的光标位于H并且我尝试选择World使用 vi),则它不起作用.似乎唯一的方法是将光标实际移到括号内并发出问题vi).为什么选择里面的文字并且"以这种方式不同?
ib.*_*ib. 26
{之间的差a,i}×{ ,,( }文本对象命令及其
,,同行主要来自一个的不同的定义块和一个引用字符串(见,).)b"'`:help v_ab:help v_aquote
虽然后者是当前行上的前一个引号字符的文本,直到同一行上的下一个字符(旁边的转义字符),前者是第n个前一个不匹配的左括号和其匹配的结束符之间的文本.简单地说,命令va((没有计数)就像
[(v%- 如果光标前没有不匹配的括号,两者都不选.但是,该命令会va"扫描当前行以查找匹配的引号对.
我认为,这种行为差异的主要原因是,与括号相反,引用的字符串被假定为非嵌套(至少在内置的Vim文本对象的透视图中).
要在当前行的下一个括号中选择文本,可以使用
%vi(
Run Code Online (Sandbox Code Playgroud)
要么
%va(
Run Code Online (Sandbox Code Playgroud)
在括号中加入括号.