vim and TeX filetypes: plaintex vs. tex
I open .tex
files with Vim, but some files are recognized as filetype=plaintex
and others as filetype=tex
. Why is this? What is the trigger that recognizes the file as tex, which has the highlighting I want?
Why are some .tex
files opened in Vim as filetype=plaintex
and others as filetype=tex
? Since the same extension, .tex
in this case, is used for multiple filetypes, "Vim tries to guess what kind of file it is" according to the Vim filetype-overrule documentation.
The ft-tex-plugin section of the Vim filetype documentation lists the rules used by Vim (versions 7 and higher) to determine which filetype to use for .tex
files:
- If the first line of the file is
%&<format>
where<format>
can beplain
,context
, orlatex
, then the filetype is set to plain TeX, ConTeXt, or LaTeX, respectively. - If there is no format designator command on the first line, then Vim searches the file for keywords to determine if the filetype should be set to
context
(ConTeXt) ortex
(LaTeX). - If no keywords are found, the filetype is set to
plaintex
(plain TeX).
The last rule is important. If you create an empty .tex
file using a command like touch myfile.tex
, then when you open it in Vim the filetype will default to plaintex
, since the file is blank.
You can change the default behavior by setting the global variable tex_flavor
in your .vimrc
:
let g:tex_flavor = "plain"
let g:tex_flavor = "context"
let g:tex_flavor = "latex"
Are you using the LaTeX-suite plugin? If so, then you probably want
let g:tex_flavor='latex'
in your .vimrc.
More than I ever wanted to know about this subject: http://vimdoc.sourceforge.net/htmldoc/filetype.html
To disable one of the file types, add a line in your filetype file, see |remove-filetype|.