我想要很多这样的改变
"\includegraphics{all.png}"
→"\includegraphics[width=\linewidth]{all.png}"
没有Sed,在Vim中。当我这样做时,我总是无意间用诸如空格之类的东西替换了缓冲区,这样浪费了很多键。我该如何快速完成?
最大的键数获胜!
从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
替换所有缓冲区
:bufdo %s/\\includegraphics\{all\.png\}/\includegraphics[width=\linewidth]{all.png}/ge