VIM中arg和argdo的使用介绍

AndyYang| 阅读:3505 发表时间:2014-03-06 20:24:46 开发工具
摘要:在工作中常常需要对成百上千个纯文本进行批量替换操作,经过多次试验,我认为使用VIM是最好的办法。 我们需要用到的是VIM的args和 argdo 两个命令。
在工作中常常需要对成百上千个纯文本进行批量替换操作,经过多次试验,我认为使用VIM是最好的办法。 
我们需要用到的是VIM的args和 argdo 两个命令。 

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://hi.baidu.com/webidea/item/919c3f867c11c15c27ebd917
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>朋友帮
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有1条评论

昵称:
邮箱:

  • 最新评论

麦克2014-03-11 22:52:25
正好解决了我的问题。。。
iPhone查询中 - bbs.ipcxz.com 朋友帮 - www.pengyb.cn iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号