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

时间:2014-03-03 10:54:24

标签: vim

当我编辑XML文件时,我有时想跳转到引号之间的下一个文本。例如,当我的光标位于my.attr的{​​{1}}时,我想跳转到attr="my.attr"的下一个出现位置。我想通过一些组合键来做(比如my.attr用于单词出现)。有可能吗?

3 个答案:

答案 0 :(得分:1)

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

相关插件

如果您想更改所有属性值(不构建:%s/替换),我的ChangeGlobally plugin会提供gc{motion}{Visual}gc命令这样做。

答案 1 :(得分:0)

您可以在命令模式下使用/<exact pattern>,如果有任何特殊字符,则可以使用\

之类的特殊字符
For example In command mode /"my\.attr"

所以只搜索确切的模式。 <{1}}或N向前和向后移动。

答案 2 :(得分:0)

我会使用yi"在引号内抓取文本(仅在开头和结尾引号位于同一行时才有效),然后/<C-R>"。 (<C-R>表示CTRL-R,而不是5个字符。)

这使您有机会在提交之前修改模式;正如@Kalanidhi指出的那样,你可能不得不逃避一些特殊的角色。它使用与@Ingo Karkat的答案相同的i"文本对象。

如果文本很短,则可以使用箭头键编辑命令行,但如果文本很长,则可能需要在<C-F>的命令行窗口中编辑它。 (或者,如果您正在考虑,请使用q/代替/。)

:help y
:help text-objects
:help c_CTRL-R
:help cmdline-editing
:help cmdline-window