vimrc 搜索并替换所有不包括以前的匹配项

vimrc search and replace all excluding previous matches

所以我的 vimrc 中有两个我经常使用的函数:

function! FindAndReplaceAllConfirm(from, to) 
  exec '%s/' . a:from . '/' . a:to . '/gc'
endfunction

function! FindAndReplaceAll(from, to) 
  exec '%s/' . a:from . '/' . a:to . '/g'
endfunction

问题是考虑我是否将 Foo 替换为 FooBar。有时我的文件中已经有 FooBar,但我不想让 FooBar 变成 FooFooBar。如何排除这样的补丁。

您可以添加单词边界 \<\> 以仅匹配和替换完全相同的单词,如以下函数所示:

function! FindAndReplaceAll(from, to)
  exec '%s/\<' . a:from . '\>/' . a:to . '/g'
endfunction