2017-02-12 6 views
1

Я работаю над системой, которая должна работать с файлами с несколькими синтаксисами: любой файл данных может конструировать C++ Python JavaScript и некоторый текст разметки документации в одном файле данных (что-то вроде многоязычного грамотного программирования).Как сделать многосинтаксическую подсветку в vim, используя в текстовых триггерах?

Можно ли вызвать синтаксический ВИМ подсветку (типа файла) в середине буфера некоторым запускающего ключевого слова в самом тексте на лету, как

.doc Let's view our data object as AST tree: 
.py 
class AST: 
    tag = 'sym' .doc here we set 'sym'bolic unversal data type .py 
    def __init__(self,V): self.val = V .doc \emph{any data can be represented as string} .py 
... 

.doc 
Now we need ... 

Может ВИМ переключаться между filetype=latex конца filetype=python на .doc и .py триггеров ?

+4

Этот Vim наконечник кажется иметь дело с такими же вещами - http://vim.wikia.com/wiki/Different_syntax_highlighting_within_regions_of_a_file – Lix

ответ

0

Да, дополнительные синтаксисы могут быть включены в текущий, cp. :help :syn-include. Однако это немного сложнее. Мой SyntaxRange plugin помогает в этом. Для примера, следующие вызовы будут работать:

:call SyntaxRange#Include('^\.doc', '\n\.\@=', 'tex') 
:call SyntaxRange#Include('^\.py', '\n\.\@=', 'python')