Vim 引号之间出现的所有文本(如*但适用于整个文本,而不是单个单词)

Vim 引号之间出现的所有文本(如*但适用于整个文本,而不是单个单词),vim,Vim,当我编辑XML文件时,我有时希望跳转到引号之间的下一个文本。例如,当我的光标位于attr=“my.attr”中的my.attr时,我想跳到下一个my.attr中。我想通过一些组合键(比如用于单词出现的Shift+*)来实现。是可能的吗?您可以使用vi“在双引号内创建属性值的可视选择。然后,有几个插件为可视模式实现*命令(通常通过重载*命令),即他们搜索所选文本的下一次出现。其中一个插件是my。(插件页面有指向其他插件的链接。) 相关插件 如果要更改所有属性值(而不构造:%s/替换),my将提供一

当我编辑XML文件时,我有时希望跳转到引号之间的下一个文本。例如,当我的光标位于
attr=“my.attr”
中的
my.attr
时,我想跳到下一个
my.attr
中。我想通过一些组合键(比如用于单词出现的
Shift+*
)来实现。是可能的吗?

您可以使用
vi“
在双引号内创建属性值的可视选择。然后,有几个插件为可视模式实现
*
命令(通常通过重载
*
命令),即他们搜索所选文本的下一次出现。其中一个插件是my。(插件页面有指向其他插件的链接。)

相关插件
如果要更改所有属性值(而不构造
:%s/
替换),my将提供一个
gc{motion}
和执行该操作的
{Visual}gc
命令。

您可以在命令模式下使用type
//code>如果有任何特殊字符,则转义该特殊字符,如
\

For example In command mode /"my\.attr"

因此,只需搜索准确的模式。
N
N
向前和向后移动。

我会用
yi“
(仅当开始和结束引号在同一行时有效)然后
/”
表示CTRL-R,而不是5个字符)

这使您有机会在提交模式之前修改它;正如@Kalanidhi所指出的,您可能需要转义一些特殊字符。它使用与@Ingo Karkat的答案相同的
i“
文本对象

如果文本较短,则可以使用箭头键编辑命令行,但如果文本较长,则可能需要在命令行窗口中使用
进行编辑。(或者,如果您想得更远,请使用
q/
而不是
/


你不必在vim模式中转义
,但是
匹配任何一个字符,所以你应该转义:
/“my\.attr”
。我强烈建议使用某种visual star插件。我觉得这是手动滚动visual star插件。下面是一个快速的visual star映射:
xnoremap*:let@/=“gvy:let[@/,@]=[@“,@/]/\V=substitute(escape(@/,'/\'),'\n','\\n','g')
这可能值得一试。目视选择文本,然后按
*
:help y
:help text-objects
:help c_CTRL-R
:help cmdline-editing
:help cmdline-window