gpt4 book ai didi

Vim 搜索最后编辑的单词

转载 作者:行者123 更新时间:2023-12-01 10:50:01 30 4
gpt4 key购买 nike

在 Vim 中编辑代码时,我经常发现自己在做同样的事情。我将移动到一个词,然后按“cw”或“ciw”来编辑该词。然后我想移动到我刚刚编辑的单词的下一个出现处。 “*”不起作用,因为它会将我移动到下一个出现的新词(而不是旧词)。

例如:

在下面的代码中,我的光标位于第一次出现的“foo”上,我想将其更改为 bar。我按“cw”并写“bar”。然后我想移动到下一个“foo”,这样我就可以按“。”改变它。按“*”将使我移动到下一个“bar”而不是“foo”。我知道的唯一方法是用替换命令更改所有“foo”,这可能不是我想要的,或者按“*”移动到下一个“foo”,然后按“#”返回存储“foo'作为搜索词,这样我就可以按'n'继续前进。无论如何设置搜索词而不跳到下一个词(设置'n'去的词而不去任何地方)?

function(){
var foo = 'blah';
foo = 'blah';
foo = 'blah';
}

-->

function(){
var bar = 'blah';
foo = 'blah';
foo = 'blah';
}

最佳答案

ciw等命令替换的文本被放入默认寄存器""。刚刚输入的文本在特殊寄存器 ". 中。因此,您可以搜索(前者):

/<C-r>"<CR>

请注意,这只是 99% 的快速解决方案;要处理各种字符,您需要转义:

/\V\C<C-r>=escape(@@, '\')<CR><CR>

替代插件

由于我经常遇到与您在问题中描述的完全相同的用例(替换短文本,然后将其重新应用于下一场比赛),因此我编写了 ChangeGlobally plugin ;它提供了一个 gc{motion} 映射作为 c 的替代品,然后在行/缓冲区的其余部分重新应用更改(对于 [count]出现)。

关于Vim 搜索最后编辑的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21457836/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com