TLDR:grep 和cfdo 命令让你轻松地在一个项目的所有文件中进行搜索和替换。要用new_string 替换字符串original_string,在命令模式下运行这个命令。
:grep original_string
:cfdo %s/original_string/new_string/g | write
虽然我已经使用Vim很多年了,但我一直忘了在所有项目文件中进行搜索和替换的确切命令,所以不得不去找它。
让我们来看看上面的两条命令到底是怎么回事。
:grep original_string
第一个命令很简单--grep ,在项目的所有文件中搜索给定的字符串,并将结果加载到快速修复列表中。你可以用:copen ,打开快速修复窗口查看结果。
:cfdo %s/original_string/new_string/g | write
cfdo 命令是最近才加入Vim的--它在Vim 7.4中才被引入。它对quickfix列表中的每个文件运行指定的命令。
被执行的命令非常简单。 第一部分是典型的vim替代命令。 bar (|)是vim中的分隔符--它让我们在一行中执行两条命令。write 与在命令模式下执行:w 相同。(你也可以在这里缩写为w )。