vim:如何搜索/替换所有打开的文件?

时间:2017-01-18 14:00:23

标签: list search vim replace buffer

如果我使用:vimgrep,它会搜索当前目录下的所有文件。但我的要求是在所有打开的文件中搜索/替换。

E.g。我正在使用vim同时打开3个文件

vim 1.cpp 2.cpp 3.cpp

我希望:

  
      
  1. 搜索所有名为“main”的函数,并在quickfix窗口中显示所有3个文件。

  2.   
  3. 在所有3个文件中将所有“hello”替换为“world”。

  4.   

4 个答案:

答案 0 :(得分:4)

如果您的Vim足够新,您可以使用:cdo命令:

:vimgrep main {1,2,3}.cpp
:cwindow
:cdo s/foo/bar/g

答案 1 :(得分:3)

使用命令:

bufdo s/string/replacement/g 

bufdo:对所有缓冲区执行操作。
s:替换
g:全球。

答案 2 :(得分:0)

我使用了以下对我有用的命令。顺序使用此命令。

:set autowriteall :bufdo! %s/pattern/replace/g

答案 3 :(得分:-1)

您可以使用命令模式。 %的S /(FINDSTRING)/(replacestring)