Давайте наконец решим эту проблему раз и навсегда!
Я отправил Чарльзу Кэмпбеллу, сопровождающему tex.vim
, по почте, предлагая добавить правила подсветки для пакета листингов.Однако оказывается, что отсутствие поддержки пакета листингов в tex.vim
на самом деле намеренно.Обоснование можно найти :h tex-package
.Короче говоря, вы должны создать свои собственные расширенные правила подсветки синтаксиса (см. Внизу поста):
Tex: Хотите выделить больше команд?
LaTeX - программируемый языки поэтому существуют тысячи пакетов, полных специализированных команд LaTeX, синтаксиса и шрифтов.Если вы используете такой пакет, вам часто хочется, чтобы распределенный синтаксис / tex.vim поддерживал его.Однако ясно, что это нецелесообразно.Поэтому, пожалуйста, подумайте об использовании техник в mysyntaxfile-add, чтобы расширить или изменить подсветку, предоставляемую синтаксисом / tex.vim.Пожалуйста, загрузите все написанные вами расширения, которые обычно помещаются в $ HOME / after / syntax / tex / [pkgname] .vim, в http://vim.sf.net/.
Лично я считаю, что это немного досадноон не будет включен, поскольку он, несомненно, увеличивает порог для среднего пользователя, пишущего свой LaTeX с использованием Vim.Найти и добавить подсветку синтаксиса для lstlisting
, lstinline
и т. Д. Не так-то просто.Не похоже, что это изменится в ближайшее время, если посмотреть на этот поток .
DevSolar, кажется, уже нашел его (и я ценю кредит!), Но Кэмпбелл предлагаетпара примеров пакетов поддержки LaTeX vimballs .Первый, lstlisting.vba.gz , включает правила подсветки для lstlisting
и lstinputlisting
.Однако ему не хватает lstinline
, о чем эта тема.
Наконец, вот мой listings.vim
, находящийся в $HOME/.vim/after/syntax/tex/
syn region texZone start="\\begin{lstlisting}" end="\\end{lstlisting}\|%stopzone\>"
syn region texZone start="\\lstinputlisting" end="{\s*[a-zA-Z/.0-9_^]\+\s*}"
syn match texInputFile "\\lstinline\s*\(\[.*\]\)\={.\{-}}" contains=texStatement,texInputCurlies,texInputFileOpt
-
Это, кажется, предпочтительное решение.Для изменения системных файлов в /usr/share/vim/..
не требуется, вам не нужно загружать и исходить из vimball или изменять окружение, а не исправлять подсветку синтаксиса.Я мог бы взглянуть на выпуск этого как простого плагина, чтобы сделать его более доступным.
Наконец, не забудьте проверить, что вы на самом деле используете tex
тип файла, а не plaintex
, в котором не хватает слишком много, чтобы быть жизнеспособным.Уже опубликовал это в комментарии выше, но некоторую дополнительную информацию можно найти в билете , который я добавил в LaTeX-Box .