在Vim / Vi中是否有一个命令将光标移动到search高亮的末尾?
Vim / Vi中是否有任何命令可以在选定的search段中移动?
例如,如果我search一个词,是否有任何命令将光标移动到突出显示的段的末尾? 说我有一个词“FishTaco”,我想search“鱼”的所有实例,并在其后面插入一些东西。 我知道我可以做一个全局replace,但是如果我只想在一些非顺序的实例中进行修改呢?
我可以看到能够将光标移动到当前突出显示的段的末尾来执行操作。
你可以这样做:
/Fish/e
/e
最后将光标停在search区域的末尾(而不是默认的第一个字符)。
如果你只是想把你的光标放在鱼的最后一个字符之后,那么你可以使用
/Fish/e+1
这将把你的光标放在h后面。 (如果没有+1
,光标将会在最后一个字符的左边结束。)
如果您特别有兴趣将光标放在Fish之后,但只有当它出现在“FishTaco”中时,才可以尝试以下选项之一:
您可以使用
/FishTaco/s+4
你的光标会在Fish和Taco之间结束。 /s+4
将光标置于search词开始之后的4个位置。
你也可以用
/FishTaco/e-3
将光标放在最后(结束)字符左侧的3个位置。
你也可以使用
/FishTaco/b+4
因为/b+4
将被视为/s+4
。
如果您已经search了/Fish
,则可以通过//e
快速更改search到比赛结尾,这会重复上次search,但会附加已经解释过的e
修饰符。
一旦你有了一个视觉select,你可以使用o
来切换所选块的开始和结束之间的光标位置。 当select是逐行时,这将切换行的位置,这意味着光标移动到select的开始和结束行,而不是开始或结束字符。 当select是字符明智的,那么运动也是字符明智的。
你也可以用`<
和`>
在视觉块的开始和结束之间切换光标,但是这会影响select本身,所以它被用来重置或调整select范围。
编辑:啊,但对于search亮点,这将无法正常工作,因为o
将启动一个行插入。 我猜search高亮是不一样的视觉select,对不起:)
你的问题部分的“光标在比赛结束”部分已经回答。
你可以做:%s/Fish/FishTaco/c
。 这让您有机会确认或拒绝每一个替代品,并跳过整个“比赛结束时的光标”业务。
/ long-regexp1 \zs long-regexp2 /
..游标将停在\ zs处 ,请参阅:help \ zs