您的位置:首页 > 其它

VIM中arg和argdo的使用介绍

2014-03-09 11:44 183 查看
在工作中常常需要对成百上千个纯文本进行批量替换操作,经过多次试验,我认为使用VIM是最好的办法。

我们需要用到的是VIM的argsargdo 两个命令。

args的用处是把需要进行批量操作的文件标记出来。例如:

args d:\a\*.txt

args d:\a\**\*.txt

以上示例中的第一个是把D盘a目录下的所有纯文本文件作上标记,第二个则包括子目录。

在VIM中可以使用pwd命令查看VIM的当前目录,可以使用cd命令改变当前目录的位置。例如:

cd d:\a\

args会找到指定目录下的所有指定类型的文件并以编辑第一个。现在可以对所有的文件进行同一个替换操作。

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

":argdo"命令以另一个命令为参数。该命令将对所有待编辑的文件都执行一次。

"%s"替换操作将施于所有行上。它通过"\<x_cnt\>"查找"x_cnt"。其中"\<"和"\>"使得只有完整的单词会被匹配,这样"px_cnt"和"x_cnt2"中的x_cnt才可以免遭毒手。

替换操作的标志"g"使得每行中的全部"x_cnt"都被替换。标志"e"则用于避免某些文件中一个"x_cnt"都找不到时的错误消息。否则的话":argdo"命令遇到这些错误就会终止整个操作。

"|"用来分隔两个命令。后面的"update"命令会在文件有改变时进行保存。如果没有一个"x_cnt"被替换为"x_counter"那就不进行任何操作。

在实际操作中还有一点小技巧,那就是如何避免在操作中频繁出现“请按Enter或其他命令继续”以及出现“更多”的提示而需要按空格键继续,如果要操作的文件数目很多,频繁地按回车或空格键会把人整疯的。

在vimrc文件中作如下设定:

set nomore

打开more选项,列表消息会在全屏填满时暂停,通过nomore选项关闭就不会有暂停,列表消息会继续进行直到结束为止。

出自:http://www.webyang.net/Html/web/article_104.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: