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

von4xj4u  于 2023-03-30  发布在  其他
关注(0)|答案(5)|浏览(185)

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

vim 1.cpp 2.cpp 3.cpp

我希望:
1.搜索所有功能称为“主”和显示在quickfix窗口中,在所有3个文件.
1.将所有3个文件中的“hello”替换为“world”。

9vw9lbht

9vw9lbht1#

使用以下命令:

bufdo s/string/replacement/g

bufdo:对所有缓冲区的操作。
s:替换
G:全球范围内。

00jrzges

00jrzges2#

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

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

weylhg0b3#

我已经使用了下面的命令,它为我工作。使用这个命令顺序。
一个月一个月一个月一个月一个月

ifsvaxew

ifsvaxew4#

根据您在vim中处理多个文件的方式(选项卡,窗口等),您可以使用不同的命令search and replace in multiple files

  • :tabdo(所有选项卡)
  • :windo(当前选项卡中的所有窗口)
  • :bufdo(所有缓冲区,即:ls命令列出的所有缓冲区)
  • :argdo(参数列表中的所有文件)
  • :cdo(快速修复列表中列出的所有文件)

首先用vim标签页打开多个文件:

$ vim -p file1.txt file2.txt

然后在vim中,您可以使用以下命令在多个文件中搜索和替换:

:tabdo %s/pattern/replace/gc
wlp8pajw

wlp8pajw5#

您可以使用命令模式。%s/(findstring)/(replacestring)

相关问题