5

К моему удивлению, самого большого в многострочном комментарии в синтаксисе TeX:Multiline Комментарии раскраски синтаксиса в VIM для TeX файлов

\usepackage{verbatim} 
... 
\begin{comment} 
    I don't like this line anymore. Please don't print it. 
\end{comment} 

не признаются/рассматриваются по $VIMRUNTIME/syntax/tex.vim и, следовательно, не окрашиваются в качестве комментария. Есть ли VIM скриптовый гуру, который может иметь решение вокруг, так как я уверен, что многие люди его искали?

Благодаря

VIM v7.3

ответ

8

Немного поиск в VIM Подсветка синтаксиса помог мне написать эту строку кода, который делает почти всю работу при добавлении к ~/.vim/after/syntax/tex.vim (возможно, потребуется создать каталог в ~/.vim каталоге):

syn region texComment start="\\begin{comment}" end="\\end{comment}" 

Моя единственная проблема в том, что он не может найти, как отключить согласование, если он встречает конец файла до окончания комментария окр ironment. У кого-то есть обход?

NB: Эта команда не поддерживает вложенность, что это хорошая вещь, так как латекс ни и вы, скорее всего, непревзойденная \end{comment}

+0

Начало области не зависит от возможного конечного совпадения, что вызывает проблемы. Но разве это не слишком загадочный угол? –

+2

Вместо того, чтобы изменять исходный синтаксис, просто поместите строку в '~/.vim/after/syntax/tex.vim' –

+0

@IngoKakat: Спасибо за точность в'/after/syntax'. Что касается вашего первого замечания, я пробовал такие вещи, как «syn region texComment start =»/\\ begin {comment} \ _. * \\ end {comment}/"end =" \\ end {comment} ", но Основная проблема заключается в том, что если шаблон конца сопоставляется в шаблоне начала (который является обязательным для проверки его существования), я не могу заставить его снова сопоставляться в конце шаблона. Из [VIM Doc] (http://vimdoc.sourceforge.net/htmldoc/syntax.html): совпадение для шаблона конца никогда не будет перекрываться с шаблоном начала. –

2

Есть несколько вариантов, как комментировать код (см multiline comment), так что это содержание шахты ~/.vim/after/syntax/tex.vim:

syn region texComment start="\\begin{comment}" end="\\end{comment}" 
syn region texComment start="\\iffalse" end="\\fi" 
syn region texComment start="\\ifx true false" end="\\fi" 
Смежные вопросы