gvim args/argdo 介绍

文章介绍了如何利用VIM的args和argdo命令进行批量文本替换操作,特别是在Linux或Unix环境中处理大量纯文本文件时。首先使用args标记需要操作的文件,然后通过argdo执行全局替换命令,避免了错误消息中断操作的问题,并提供了设置避免提示暂停的技巧。
摘要由CSDN通过智能技术生成

在工作中常常需要对成百上千个纯文本进行批量替换操作,经过多次试验,我认为使用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选项关闭就不会有暂停,列表消息会继续进行直到结束为止。

简化版:

方法1:替换特定目录xxx下后缀名.sv格式的文件中aaa字符为bbb 字符

  1. 切换到对应目录, cd xxx

  2. 输入 g, 打开vim terminal

  3. vim 中切换成命令模式 :args *.sv

  4. argdo %s/aaa/bbb/g | update

    其它文件格式同理,不再赘述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值