3

通常我需要在大型 xml 模式文件中搜索光标下单词的下一次出现,但如果它是结束标签的标签,最好不要

在下面的示例中,# 是光标所在的位置。使用*or#和 iskeyword 不包括>or<将在<Dealid>and之间移动</Dealid>

<Deali#d>4444</Dealid>
... 50 lines
<Dealid>6666</Dealid>
... n lines
<Dealid>5643</Dealid>

我尝试了哪个可以:set iskeyword+=<很好地移动到下一个匹配项,但是它更改为vey包含<结束标记的 ,因此6666例如移动到.vey6666<6666

无论如何要充分利用这两个词或将其限制iskeyword+=<*and#运算符?

4

2 回答 2

5

这应该做你想要的。

nnoremap * :set iskeyword+=<<CR>*:set iskeyword-=<<CR>
nnoremap # :set iskeyword+=<<CR>#:set iskeyword-=<<CR>

iskeyword它在执行之前设置更改*#然后将其重置。

于 2014-09-24T04:07:34.487 回答
0

而不是改变'iskeyword'也许使用视觉星搜索。这将允许您直观地选择文本,然后点击*。例如va<*

如果您不想使用插件,可以将以下映射放入~/.vimrc文件中:

xnoremap * y/\V<c-r>=escape(@", '\')<cr><cr>

注意:此映射破坏了未命名的寄存器,因此最好使用更高级的映射或插件

于 2014-09-25T15:07:41.780 回答