22

Я открываю .tex файлы с помощью Vim, но некоторые файлы распознаются как filetype=plaintex а другие как filetype=tex . Почему это? Что такое триггер, который распознает файл как tex, который имеет нужную подсветку?

3 ответа3

22

Почему некоторые файлы .tex открываются в Vim как filetype=plaintex а другие как filetype=tex? Так как одно и то же расширение, в данном случае .tex , используется для нескольких типов файлов, «Vim пытается угадать, что это за файл» в соответствии с документацией Vim, определяющей тип файла.

В разделе ft-tex-plugin документации по типам файлов Vim перечислены правила, используемые Vim (версии 7 и выше), чтобы определить, какой тип файла использовать для файлов .tex :

  1. Если первая строка %&<format> , где <format> может быть plaintex context или tex то Filetype устанавливается в обычный TeX, контекстная или LaTeX, соответственно.
  2. Если в первой строке нет команды обозначения формата, то Vim ищет в файле ключевые слова, чтобы определить, должен ли тип файла быть установлен в context (ConTeXt) или tex (LaTeX).
  3. Если ключевые слова не найдены, 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"
12

Вы используете плагин LaTeX-suite? Если так, то вы, вероятно, хотите

let g:tex_flavor='latex'

в вашем .vimrc.

3

Больше, чем я когда-либо хотел знать об этом предмете: http://vimdoc.sourceforge.net/htmldoc/filetype.html

Чтобы отключить один из типов файлов, добавьте строку в файл filetype, см. | Remove-filetype |.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .