让我们看一个简单的例子:
Some text TOM, some text
^ (my cursor here)
Some TOM, some text
按*
后,我得到:
Some text TOM, some text
Some TOM, some text
^ (now cursor here)
它总是跳到下一个单词,这很烦人。我只是希望它保持在同一个地方,包括TOM
到搜索模式(按下n
的下一次出现)。当我想从光标开始重构变量名时,这很有用。
例如,如果*只是在搜索模式中包含一个单词,我可以执行以下操作:
tom := "some text"
^ (cursor)
func test() {
println(tom)
}
*
(将旧名称添加到模式中)ciw
(更改单词)newname
(编写新单词)n
(下次出现).
(重复上一个命令)。有没有改变行为的选择?
答案 0 :(得分:5)
你只需要``(2个反引号,加里伯恩哈特称之为#34;滴答滴答")然后跳回来:
*``ciwfoo<Esc>n.n.
请注意,您可以使用cgn
代替ciw
并跳过n
步骤:
*``cgnfoo<Esc>..
如果您不想按&#34;勾选回复&#34;
,请将其重新映射nnoremap <key> *``cgn
nnoremap <other-key> #``cgN