Vim在许多文件周围快速替换或替换

时间:2012-11-21 22:49:07

标签: vim substitution

我想要很多这种改变

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

没有Sed而是Vim。当我这样做时,我总是意外地用空间替换缓冲区,因此浪费了很多键。我怎么能快速做到?

最少的钥匙赢了!

从Vim内部开始:将匹配项添加到缓冲区

  

:grep -r“includegraphics”Sections / *

2 个答案:

答案 0 :(得分:3)

使用Vim在一组文件中执行某些操作的灵活方法是 将他们的名字列表收集到参数列表中(参见:help arglist), 然后迭代执行所需的命令。

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

:args ./**/*.tex

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

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

答案 1 :(得分:2)

替换所有缓冲区

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