Question

Background: I've decided to try Vim with latex-suite as my editor for a largish LaTeX project. As I've switched to Vim from different editor/IDE which didn't force autoindent (and I was sloppy with indenting manually), the current indentation of .tex files is quite mismatched and doesn't suit the style I want (which is set up by adding filetype plugin indent on and automcd Filetype tex setlocal shiftwidth= etc in my .vimrc; this works fine).

The project constitutes of multiple .tex files, structured like

main.tex
tex/
   chapter1.tex
   chapter2.tex
   ...
   chapter10.tex

This stackexchange tells to indent a single source code file opened in vim easily with =, as in

gg=G

which works perfectly. Now, the question.

Is there a neat Vim (and/or bash/other if Vim can't handle this neatly, but preferrably Vim) solution which would enable me to do similar 'reindent' for all the .tex files at once (in other words, without typing gg=G separately for each tex file where the indentation needs to be fixed?)

Was it helpful?

Solution

First, add all LaTeX files as arguments in Vim (the example assumes you're in the document's root):

:args *.tex **/*.tex

Then, you can apply the command to all arguments via :argdo (and :normal, since this is a normal-mode command); you probably want to persist the changes in the same go, too:

:argdo execute 'normal gg=G' | update
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top