Я открываю .tex
файлы с помощью Vim, но некоторые файлы распознаются как filetype=plaintex
а другие как filetype=tex
. Почему это? Что такое триггер, который распознает файл как tex, который имеет нужную подсветку?
3 ответа
Почему некоторые файлы .tex
открываются в Vim как filetype=plaintex
а другие как filetype=tex
? Так как одно и то же расширение, в данном случае .tex
, используется для нескольких типов файлов, «Vim пытается угадать, что это за файл» в соответствии с документацией Vim, определяющей тип файла.
В разделе ft-tex-plugin документации по типам файлов Vim перечислены правила, используемые Vim (версии 7 и выше), чтобы определить, какой тип файла использовать для файлов .tex
:
- Если первая строка
%&<format>
, где<format>
может бытьplaintex
context
илиtex
то Filetype устанавливается в обычный TeX, контекстная или LaTeX, соответственно. - Если в первой строке нет команды обозначения формата, то Vim ищет в файле ключевые слова, чтобы определить, должен ли тип файла быть установлен в
context
(ConTeXt) илиtex
(LaTeX). - Если ключевые слова не найдены, Filetype устанавливается в
plaintex
(обычный TeX).
Последнее правило важно. Если вы создаете пустой файл .tex
, используя команду как touch myfile.tex
а затем , когда вы открываете его в Vim типа файла по умолчанию будет plaintex
так как файл будет пустым.
Вы можете изменить поведение по умолчанию, установив глобальную переменную tex_flavor
в вашем .vimrc
:
let g:tex_flavor = "plain"
let g:tex_flavor = "context"
let g:tex_flavor = "latex"
Вы используете плагин LaTeX-suite? Если так, то вы, вероятно, хотите
let g:tex_flavor='latex'
в вашем .vimrc.
Больше, чем я когда-либо хотел знать об этом предмете: http://vimdoc.sourceforge.net/htmldoc/filetype.html
Чтобы отключить один из типов файлов, добавьте строку в файл filetype, см. | Remove-filetype |.