辞职被索赔500万:使用vim批量替换多个文件中的

来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 08:24:45
假定你有个变量名为 "x_cnt" 而你要把他改为 "x_counter"。这个变量在多个 C 文件都
被用到了。你需要在所有文件中作此改动。你得这么做。
   把所有相关文件放进参数列表: >

    :args *.c
<
这个命令会找到所有的 C 文件并编辑其中的第一个。现在你可以对所有这些文件执行
置换命令: >

    :argdo %s//x_counter/ge | update

命令 ":argdo" 把另一个命令当作其参数。而后者将对参数列表内所有的文件执行。
   作为参数的替换命令 "%s" 作用于所有文本行。它用 "\" 来查找
"x_cnt"。 "\<" 和 "\>" 用来指定仅匹配那些完整的词,而不是 "px_cnt" 或
"x_cnt2"。
   替换命令的标记中包含 "g",用以置换同一行文本内出现的所有的匹配词 "x_cnt"。
标记 "e" 用于避免因文件中找不到 "x_cnt" 而出现错误信息。否则 ":argdo" 命令
就会在遇到第一个找不到 "x_cnt" 的文件时中断。
   字符 "|" 分隔两条命令。后面的 "update" 命令将那些有改动的文件存盘。如果
没有 "x_cnt" 被改成 "x_counter",这个命令什么也不做。

还有一个 ":windo" 命令,用于在所有视窗内执行其参数所规定的命令。以及 ":bufdo" 
命令,对所有缓冲执行其参数所规定的命令。使用中要小心,因为你在缓冲列表中的文
件数量可能超过你能想像的。请用 ":buffers" 命令 (或 ":ls") 来检查缓冲列表。

----------------------------------------------------------------------
或者用sed命令对多个文件操作

sed -e 's/pattern/replacement/g' -i files