自定义vim命令

bigzhu posted @ Dec 22, 2007 03:26:00 PM in vim with tags vim , 4677 阅读

vim 对一个目录下的txt文件中某个字符替换,非常麻烦

比如替换 bigzhu 为|bigzhu|需要如下命令:

args *.txt | argdo %s/ bigzhu /|bigzhu|/ge | update

于是是用自定义命令:

command -nargs=1 Zu :args *.txt | argdo %s/ /||/ge | update

只需要输入

Zu bigzhu

即可完成 bigzhu 到|bigzhu|的替换

在将这条自定义命令放入_vimrc 中:

“自定义命令
command -nargs=1 Zu :args *.txt | argdo %s/ /||/ge | update

继续完善:

command -nargs=1 Zu :args *.txt | argdo %s/ /||/ge | update | argdo %s/ /||/ge | update | argdo %s/ /||/ge | update

发现一个问题,替换出来的关键字,前面会多出一个空格,发现vim的自定义命令是倒着执行的,也就是最先执行的是:

argdo %s/ /||/ge | update

于是满足 的根本没机会匹配到,改为:

command -nargs=1 Zu :args *.txt | argdo %s/ /||/ge | update | argdo %s/ /||/ge | update | argdo %s/ /||/ge | update

其实没必要需要这么多argdo和update,修改为

command -nargs=1 Zu :args *.txt | argdo %s/ /||/ge | %s/ /||/ge | %s/ /||/ge | update |helptags .

因为只有一个argdo,在一个argdo里面是顺次执行的,要把 换到前面来.



登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter