我确信曾经有一个插件这类的东西,但现在我需要它,我似乎找不到它(自然),所以我只会问nice和简单。
在括号、引号或匹配字符列表中选择最简单的方法是什么?
write ( *, '(a)' ) 'Computed solution coefficients:'
例如,这里我想选择(a),或Computed solution coefficients:。
我对多行不感兴趣,只对发生在一行上的情况感兴趣。
我确信曾经有一个插件这类的东西,但现在我需要它,我似乎找不到它(自然),所以我只会问nice和简单。
在括号、引号或匹配字符列表中选择最简单的方法是什么?
write ( *, '(a)' ) 'Computed solution coefficients:'
例如,这里我想选择(a),或Computed solution coefficients:。
我对多行不感兴趣,只对发生在一行上的情况感兴趣。
当前回答
这种选择方法是内置的,并且在Vim帮助中有很好的介绍。它涵盖了XML标记等内容。
参见:help文本对象。
其他回答
在vim中使用一个简单的键映射就可以解决这个问题。 map viq F " lvf " hh 上面的命令将viq映射到用于在引号之间搜索的键。将“替换为任何字符并创建您的键映射。 在启动期间将此插入vimrc,您应该能够每次都使用它。
要在单引号内进行选择,请使用vi'。
要在括号内进行选择,请使用vi(。
我想在投票最多的答案中添加一个细节:
如果您正在使用gvim并希望复制到剪贴板,请使用
+。”这是命令< >
复制括号(或括号或花括号)之间的所有内容
例如:"+yi}将把光标所在花括号之间的所有内容复制到剪贴板。
我想补充一些已经很好的答案。我来这里寻找一种方法来改变html括号内的文本,所以我想为其他人提供一个答案,也在寻找它。
你可能认为ci<可以工作,但实际上只有当你在其中一个标签内部时才可以工作:
<would work inside here> But not here </would work inside here>
我想要的是改变html标签之间的文本本身:
<div>change me</div>
我想要的是“改变内部标签”:cit
感谢另一个提到文档(:help text-objects)的答案,这就是我如何找到我正在寻找的东西。
我做了一个插件vim-textobj-quotes: https://github.com/beloglazov/vim-textobj-quotes
它为任何类型的最接近的引号对提供文本对象。仅使用iq或aq,它允许您操作当前环绕光标的单(')、双(")或后(')引号的内容,这些引号在光标的前面或后面(按优先顺序)。换句话说,它在需要达到引号时向前或向后跳转。
通过查看示例更容易理解(游标显示为|):
前:foo '1, | 2,3 ' bar;按diq: foo '|'条后 前:foo| ' 1,2,3 ' bar;按diq: foo '|'条后 foo ' 1,2,3 ' |bar;按diq: foo '|'条后 前:foo '1, | 2,3 ' bar;按daq后:foo | bar 前:foo| ' 1,2,3 ' bar;按daq后:foo | bar foo ' 1,2,3 ' |bar;按daq后:foo | bar
上面的例子是单引号的例子,插件对双引号(")和反引号(')的工作方式完全相同。
您还可以使用任何其他操作符:ciq、diq、yiq、viq等。
请看看上面链接的github页面了解更多细节。