vim 技巧之用宏命令批量处理文件

今天遇到了一种情况,就是我需要同时修改34个文件中的某些字符串的内容,如果一个个打开需改的话,那也太麻烦了。后来就想着能不能通过vim的宏命令来修改
呢?现在就总结下关于宏在文件列表中的应用
1.首先,我们创建一个文件夹

all 


2.里面我们创建6个文件分别是

1.txt,2.txt,3.txt,4.txt,5.txt,6.txt


3.内容都是

aaa bbb ccc 


现在我们想要把每一个文件里面的aaa都换成zhangshuli,我们可以这么做
第一步:把要操作的文件,导入到缓存去列表

vim ; :args *


第二步:设置缓存区文件修改不保存也可以跳转

set hidden


第三步:录制宏命令
并行操作

qa /aaa ciw zhangshuli <Esc>


整个文件列表执行宏命令

:argdo normal @a


批量保存 :

argdo write ( 或者wall )


串行操作

qa /aaa ciw zhangshuli <Esc> :next

运行命令

22@a


批量保存 :

argdo write ( 或者wall )


如果你想每次修改以后就自动保存,你可以把宏命令修改如下

qa /aaa ciw zhangshuli <Esc> :wnext

 


wnext的意思是,先运行write 然后运行next

我们在修改源码的时候,经常会修改多了文件,让后在多个文件中有自己的注释,当我们想要批量修改注释的内容的时候,这时候我们就可以使用上面的方法。只不过,为了把我们修改的文件都加入到缓存区,我们可以使用如下方法

1.把修改的文件放到一个txt文件中 git status . > change.txt

2.批量打开文件 :args `cat change.txt`

3.这时候在使用上面的方法就行了

posted @ 2016-01-05 13:42  小白屋  阅读(2396)  评论(0编辑  收藏  举报