2012-11-21 25 views
1

我想很多这种变化Vim的更换或替代快上许多文件

"\includegraphics{all.png}" 的 - > "\includegraphics[width=\linewidth]{all.png}"

没有桑达只不过Vim。当我这样做时,我总是用空间之类的东西来替换缓冲区,这样会浪费很多密钥。我该如何快速做到这一点?

最小数量的钥匙胜利!

启动Vim里面:让比赛来缓冲

:grep的-r “includegraphics” 节/ *

回答

3

在gro中执行某些操作的灵活方式使用Vim修改文件的地址是 将他们的名字列表收集到参数列表(参见:help arglist), ,然后遍历它执行所需的命令。

为了完成第一步,请使用命令:args,:argadd:argdelete。例如,设置参数列表中的所有 文件有.tex扩展在当前目录及其 子目录的名称,问题

:args ./**/*.tex 

要执行第二步,使用:argdo命令:

:argdo %s/\\includegraphics\zs\ze{all.png}/[width=\\linewidth]/g 
2

替换所有缓冲区

:bufdo %s/\\includegraphics\{all\.png\}/\includegraphics[width=\linewidth]{all.png}/ge

+0

你为什么要逃避'{'?它不是perl,'{'默认没有特殊意义(不是非常魔术模式,':h/\ v'),而是'\ {'确实。 – ZyX