Я открываю .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>может бытьplaintexcontextили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 |.
