使用Vim重新缩进多个文件(LaTex)

kek*_*nen 4 vim bash indentation auto-indent

背景:我决定尝试使用乳胶套件的Vim作为我的一个大型LaTeX项目的编辑.因为我已经从不同的编辑器/ IDE切换到Vim而没有强制autoindent(我手动缩进很邋)),.tex文件的当前缩进是非常不匹配的,并不适合我想要的样式(这是通过添加filetype plugin indent onautomcd Filetype tex setlocal shiftwidth= etc在我的.vimrc中设置;这很好用).

该项目由多个.tex文件组成,结构如下

main.tex
tex/
   chapter1.tex
   chapter2.tex
   ...
   chapter10.tex
Run Code Online (Sandbox Code Playgroud)

这个stackexchange告诉我用/来简单地缩进在vim中打开的单个源代码文件,如

gg=G
Run Code Online (Sandbox Code Playgroud)

哪作得很好.现在,问题.

是否有一个整洁的Vim(和/或bash /其他,如果Vim无法处理这个整齐,但最好是Vim)解决方案,这将使我能够同时为所有 .tex文件做类似的' reindent ' (换句话说,没有gg=G为需要修复缩进的每个tex文件单独打字?)

Ing*_*kat 5

首先,将所有LaTeX文件作为参数添加到Vim中(该示例假定您位于文档的根目录中):

:args *.tex **/*.tex
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过:argdo(并且:normal,因为这是一个普通模式命令)将命令应用于所有参数; 你可能也希望同样坚持改变:

:argdo execute 'normal gg=G' | update
Run Code Online (Sandbox Code Playgroud)