我想在多个文件中执行以下类型的多次替换:
"\includegraphics{all.png}"
→ "\includegraphics[width=\linewidth]{all.png}"
我想在不使用 Sed 的情况下仅使用 Vim 来完成此操作。然而,当我这样做时,我总是不小心用空间之类的东西替换了缓冲区,所以浪费了很多键。我怎样才能快速完成?
最少数量的 key 获胜!
在 Vim 内部开始:将匹配项获取到缓冲区
:grep -r "includegraphics" Sections/*
最佳答案
使用以下方式在一组文件中执行某些操作的灵活方法
Vim 是将他们的名字列表收集到参数列表中(参见
:help arglist
),然后迭代它执行所需的
命令。
为了执行第一步,请使用命令 :args
、:argadd
和
:argdelete
。例如,将参数列表设置为以下名称
当前目录中具有 .tex
扩展名的所有文件以及
其子目录,运行:
:args ./**/*.tex
要执行第二步,请使用 :argdo
命令:
:argdo %s/\\includegraphics\zs\ze{all.png}/[width=\\linewidth]/g
关于vim - 如何在 Vim 中高效地跨多个文件执行替换命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13503347/