如何使用文本触发器在vim中突出显示multisyntax?

时间:2017-02-12 13:12:16

标签: vim

我正在研究必须使用多语法文件的系统:任何数据文件都可以包含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 ...

vim可以在filetype=latex上的filetype=python结束.doc.py触发器之间切换吗?

1 个答案:

答案 0 :(得分:0)

是的,当前的cp中可以包含其他语法。 :help :syn-include。但是,设置它有点复杂。我的SyntaxRange plugin有助于此。对于您的示例,以下调用将起作用:

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