您的位置:首页 > 其它

vim 批量替换多个文件中的字符

2014-02-07 15:24 204 查看
假定你有个变量名为 "x_cnt" 而你要把他改为 "x_counter"。这个变量在多个 C 文件都

被用到了。你需要在所有文件中作此改动。你得这么做。

把所有相关文件放进参数列表: >

:args *.c

<

这个命令会找到所有的 C 文件并编辑其中的第一个。现在你可以对所有这些文件执行

置换命令: >

:argdo %s/<x_cnt>/x_counter/ge | update

命令 ":argdo" 把另一个命令当作其参数。而后者将对参数列表内所有的文件执行。

作为参数的替换命令 "%s" 作用于所有文本行。它用 "\<x_cnt\>" 来查找

"x_cnt"。 "\<" 和 "\>" 用来指定仅匹配那些完整的词,而不是 "px_cnt" 或

"x_cnt2"。

替换命令的标记中包含 "g",用以置换同一行文本内出现的所有的匹配词 "x_cnt"。

标记 "e" 用于避免因文件中找不到 "x_cnt" 而出现错误信息。否则 ":argdo" 命令

就会在遇到第一个找不到 "x_cnt" 的文件时中断。

字符 "|" 分隔两条命令。后面的 "update" 命令将那些有改动的文件存盘。如果

没有 "x_cnt" 被改成 "x_counter",这个命令什么也不做。

还有一个 ":windo" 命令,用于在所有视窗内执行其参数所规定的命令。以及 ":bufdo"

命令,对所有缓冲执行其参数所规定的命令。使用中要小心,因为你在缓冲列表中的文

件数量可能超过你能想像的。请用 ":buffers" 命令 (或 ":ls") 来检查缓冲列表。

2. 同时打开不同文件目录的文件

:n **/filename **/css/filename
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: