为什么*(星号)立即转到vim中的下一个出现?

时间:2015-11-02 11:23:39

标签: vim

让我们看一个简单的例子:

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(下次出现).(重复上一个命令)。有没有改变行为的选择?

1 个答案:

答案 0 :(得分:5)

你只需要``(2个反引号,加里伯恩哈特称之为#34;滴答滴答")然后跳回来:

*``ciwfoo<Esc>n.n.

请注意,您可以使用cgn代替ciw并跳过n步骤:

*``cgnfoo<Esc>..

如果您不想按&#34;勾选回复&#34;

,请将其重新映射
nnoremap <key>       *``cgn
nnoremap <other-key> #``cgN