vim 批量替换

| |
[不指定 2012/01/02 23:49 | by 刘新修 ]

使用vim批量替换多个文件中的

PHP 代码:
==============================================================================
*
26.3*    
改动多个文件

假定你有个变量名为 
"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"
来检查缓冲列表。

============================================================================== 
Vim 编辑器 | 评论(0) | 引用(0) | 阅读(8741)