Vim - 搜索并替换结果

时间:2010-11-02 21:14:56

标签: search vim replace find

几个月后,我对Vim越来越感到舒服。 但是,只有一个简单的功能我无法从网上得到任何答案。那就是“搜索并替换结果”。问题是我知道:

:/要搜索的关键字,并点击输入“关键字”将突出显示(当然使用set hlsearch) n或N导航

:%s​​ / keyword / new_keyword / g用new_keyword替换所有出现的关键字。

但是,我认为必须有一种方法来搜索,并将匹配的关键字(突出显示)替换为任何new_keyword而不执行“:%s / keyword / new_keyword / g”,这是考虑搜索的大量输入&安培;替换是这样的日常功能。

任何答案/评论都将不胜感激!

4 个答案:

答案 0 :(得分:31)

如果您已经完成了搜索,只需在substitute命令中省略模式,就可以替换相同的模式。例如:

/keyword

搜索“关键字”,然后:

:%s//new_keyword/g

会将所有出现的“keyword”替换为“new_keyword”。

答案 1 :(得分:3)

搜索并使用dot命令(你并没有意味着你使用的是dot命令,这就是我突出显示它的原因)重复上一次输入动作是我最好的选择。

我使用s /// g进行搜索和替换。

答案 2 :(得分:2)

好吧,因为#keyword#和#new_keyword#占大多数字符,你需要一些方法来区分它们(即vim中的字符,或者不同编辑器中对话框中输入字段之间的标签),你可能还有四到五次击键。

所以我认为你可能过高估计击键次数并且忘记了(1)它变得非常自然,并且(2)以这种方式工作也允许你通过指定不同的范围或选项标志自然地修改所执行的动作

但你可以减少击键次数。如果需要,您可以映射一个键,以自动显示已经存在'%s /'的命令行。 e.g:

nmap s :%s/

上面的命令会重新映射's'(我不建议重新映射到该密钥,但它提供了这个想法)并设置您插入关键字。

此外,您可以将'gdefault'选项设置为默认为每行替换多次。这使您可以跳过击键中的结尾'/ g':

set gdefault

有关该选项的帮助部分,请参阅':h gdefault'。

最后我会说它已经习惯了它的默认工作方式,因为当你想指定不同的范围或选项标志时,以这种方式使用它可以保持相同的基本操作,并且创建一个新的特殊地图只是要记住的另一件事。 gdefault可能值得设置,如果你认为你想要大部分时间,在设置gdefault结束时添加/ g标志有转动/ g关闭的效果。 。 。

答案 3 :(得分:1)

移动到第一个突出显示的单词,然后录制一个宏来替换单词并移动到下一个单词,例如:

gg
n
qq
caw new_word^[
n
q
@q
@@
@@
...
相关问题