Vim: выделите латексный комментарий, используя другой тип файла. - PullRequest
3 голосов
/ 30 июня 2010

Я использую vim для написания латекса. Я хотел бы выделить латексные комментарии, используя другой тип файла. (Например, я хотел бы выделить латексные комментарии, используя форматирование c ++).

Есть ли способ сделать это?


(Edit)

Пример:

\section{Introduction}

% This is a comment.  I would like to higlight comments using the 
% syntax highlighting from c++ files (so that keywords are higlighted)

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla ...

(Примечание: конечная цель - не использовать подсветку с ++, но это делает пример более понятным)

Ответы [ 4 ]

3 голосов
/ 01 июля 2010

Это на самом деле довольно легко сделать, просто создайте ~ / .vim / after / syntax / plaintex.vim с содержанием:

let s:saved_syntax = b:current_syntax
unlet b:current_syntax

syntax include @Cpp syntax/cpp.vim

syntax match cppInComment /.*/ contained containedin=initexComment contains=@Cpp transparent

let b:current_syntax = s:saved_syntax

и ~ / .vim / after / syntax / tex.vim with:

let s:saved_syntax = b:current_syntax
unlet b:current_syntax

syntax include @Cpp syntax/cpp.vim

syntax match cppInComment /.*/ contained containedin=texComment contains=@Cpp transparent

let b:current_syntax = s:saved_syntax

Это включает в себя синтаксис c ++ в качестве подинтаксиса синтаксиса TeX и просто говорит, что код C ++ должен выделяться в комментариях.

0 голосов
/ 30 июня 2010

Это не точное решение, но оно может быть адаптировано к тому, что вы делаете. Haskell может быть запрограммирован в «грамотном» стиле , буквально смешивая код LaTeX и Haskell в одном файле. Затем он разделяется при компиляции. Существует плагин vim , который будет выделять части LaTeX и Haskell по отдельности.

0 голосов
/ 30 июня 2010

Возможно, вам придется проверить, установлен ли на вашем компьютере файл синтаксиса латекса или нет.Если нет, вам необходимо установить файл синтаксиса.

Если вас не устраивает определение синтаксиса, вы можете поискать файл синтаксиса в Google и установить его.Тем не менее, я обычно не заменяю синтаксические файлы из Интернета.Я загружаю новый файл синтаксиса только для VIM моей учетной записи.

У меня есть несколько блогов на VIM.Не уверен, этот поможет.

0 голосов
/ 30 июня 2010

Взгляните на :h contained. Похоже, вы могли бы что-то настроить в пользовательском файле синхронизации, который выделяет ключевые слова C ++, только если они находятся внутри комментария.

:syntax keyword Test    int   contained
:syntax match   Comment "^%"  contains=Test

Это помогает?

...