vim - 如何从 Vim 中的括号外快速选择带括号的文本?

标签 vim

我知道我可以通过键入 vi' 来选择单引号或双引号内的文本。或 vi"在正常模式下。例如,光标位于字母 H这里:

Hello "World"
我可以选择单词 World通过发出 vi" .
但这似乎不起作用如果 World被括起来而不是被引用:
Hello (World)
如果我的光标位于 H我尝试选择 World使用 vi) , 这是行不通的。似乎唯一的方法是首先将光标实际移动到括号内,然后才发出 vi) .
为什么选择括号和引号内的文本会以这种方式不同?

最佳答案

{ a 的区别, i }×{ ( , ) , b } 文本对象命令
和他们的 " , ' , `对应物主要来自
块和带引号的字符串定义的差异
(见 :help v_ab:help v_aquote )。
而后者是来自前一个引号字符的文本
当前行直到同一行上的下一个(转义的放在一边),
前者是前第n个不匹配开头之间的文本
括号和匹配的结束之一。简单地说,命令va( (没有计数)就像 [(v% ——如果没有无与伦比的
光标前的括号,都没有选择。然而,
命令 va"扫描当前行以找到匹配对
无论如何。
我想,这种行为差异的主要原因是
与括号相反,带引号的字符串被假定为
非嵌套(至少从内置 Vim 文本对象的角度来看)。
要选择当前行下一个括号中的文本,
可以使用 %vi(%va( ,取决于是否需要
分别在选择中包含或不包含括号。

关于vim - 如何从 Vim 中的括号外快速选择带括号的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803905/

相关文章:

vim - NerdTree - 显示树中的文件

vim - 我可以禁用或禁止Vim W11警告吗?

vim - fzf.vim 动态更改工作目录

vim - vim 中可以使用多个文件夹标记吗?

在某些主机上,vim 撤消仅限一步

regex - 通过 Vim 的 Regex 和 globbing 查找重复

git - 在 OS X 上使用 vi 添加 git 提交消息

vim - 延迟或禁用自动隐藏 {Visual}g CTRL-G 返回的信息

vim - 如何在 vim 中调用 esnext?

windows - 让 vim 在 mobaxterm 中工作