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