Подсветка синтаксиса Vim с помощью $ и lstinline lstlisting

Если я использую встроенную версию lstlisting как показано:

\lstinline{!$omp parallel for}

подсветка синтаксиса в vim идет не так, и оставшаяся часть файла latex окрашена в красный цвет, как будто это вся часть листинга кода. Проблема заключается в долларе $ . Как я могу этого избежать?

28
задан Conner 11 August 2012 в 00:50
поделиться

3 ответа

У меня нет этой проблемы. Я использую Vim 7.3.46 с filetype = tex. (По умолчанию в моих файлах .tex по умолчанию используется "обычный текст"; вы можете проверить тип файла с помощью: set ft?)

0
ответ дан 28 November 2019 в 03:33
поделиться

Это на самом деле не ошибка - это дизайн. Чтобы правильно выделить это, Vim должен был бы проанализировать и интерпретировать весь документ TeX вплоть до точки, где этот код встречается, поскольку TeX является контекстно-зависимым языком. Это слишком сложно и слишком много времени для плагина подсветки синтаксиса.

Единственным приемлемым решением было бы переписать подсветку синтаксиса с нуля, используя полную реализацию TeX, которая выдает метаинформацию для каждого токена в исходном коде. Это огромный проект . Насколько я знаю, ни одна из доступных в настоящее время реализаций TeX не дает такой информации, а это значит, что действительно придется написать это самому.

6
ответ дан 28 November 2019 в 03:33
поделиться

Первоначальная проблема казалась мне тем, что остальная часть tex-файла показана с неправильной подсветкой синтаксиса. Поэтому, возможно, самым простым и практичным решением может быть использование

%stopzone

после lstlisting-Region.

4
ответ дан 28 November 2019 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: