vim: 如何在所有打开的文件中search/replace?
vim: How to search/replace in all opened files?
如果我使用:vimgrep,它会搜索当前目录下的所有文件。但是我的要求是在所有打开的文件中search/replace。
例如我正在使用 vim 同时打开 3 个文件
vim 1.cpp 2.cpp 3.cpp
我希望:
search all functions called "main" and display in quickfix window, among all 3 files.
Replace all "hello" with "world" in all 3 files.
您可以使用命令模式。
%s/(查找字符串)/(替换字符串)
使用命令:
bufdo s/string/replacement/g
bufdo:对所有缓冲区的操作。
s :替换
g :全局。
如果您的 Vim 足够新,您可以使用 :cdo
命令:
:vimgrep main {1,2,3}.cpp
:cwindow
:cdo s/foo/bar/g
我使用了以下对我有用的命令。按顺序使用此命令。
:set autowriteall
:bufdo! %s/pattern/replace/g
如果我使用:vimgrep,它会搜索当前目录下的所有文件。但是我的要求是在所有打开的文件中search/replace。
例如我正在使用 vim 同时打开 3 个文件
vim 1.cpp 2.cpp 3.cpp
我希望:
search all functions called "main" and display in quickfix window, among all 3 files.
Replace all "hello" with "world" in all 3 files.
您可以使用命令模式。 %s/(查找字符串)/(替换字符串)
使用命令:
bufdo s/string/replacement/g
bufdo:对所有缓冲区的操作。
s :替换
g :全局。
如果您的 Vim 足够新,您可以使用 :cdo
命令:
:vimgrep main {1,2,3}.cpp
:cwindow
:cdo s/foo/bar/g
我使用了以下对我有用的命令。按顺序使用此命令。
:set autowriteall
:bufdo! %s/pattern/replace/g