示例:
cat abc.txt
foo g foo a foo
我只想把第一和第二个foo替换为goo。 我应该如何在VIM中做到这一点?
输出:
goo g goo a foo
答案 0 :(得分:4)
有几种方法可以做到这一点。
/foo<CR>3sfoo<Esc>n.
。:s/foo/goo<CR>&
。:s/foo\(.\{-}\)foo/goo\1goo
。(如果“foo”没有出现两次,#3将失败。)
:help s
:help .
:help &
:help sub-replace-special
答案 1 :(得分:0)
如果你不是高尔夫球手并且不想故意在角色限制下做事,那么如何运行:%s / foo / goo /两次?
答案 2 :(得分:0)
使用我的PatternsOnText plugin,您可以将匹配指定为yynyny
的特殊:SubstituteSelected
变体的计数或:substitute
答案:
:SubstituteSelected/foo/goo/g 1,2
答案 3 :(得分:0)
除了所有其他答案,您还可以尝试:
:%s/foo/goo/gc
前两次会要求replace with abc (y/n/a/q/l/^E/^Y)?
回复y
,然后输入q
退出。