Realce de sintaxe personalizada do Vim, inclui outra sintaxe de idioma em um intervalo especificado

4

VIM 7.3.46

Eu tenho um arquivo de sintaxe personalizado definido para tornar minhas anotações mais legíveis.

Eu quero definir um intervalo que aplique realce de sintaxe de um arquivo de sintaxe existente (por exemplo, php, javascript ou qualquer outro) dentro de certos caracteres de limite.

Por exemplo,

Notes.txt
Notes would be here, blah blah...
More notes, then a javascript code block with proper js highlighting below this:

**jsbegin**
    $('#jquerystuff').change(function(){
        var example = $(this).val();
        alert(example);
    });
**jsend**

Estou procurando algo como isto para colocar no arquivo de sintaxe do vim:

so <sfile>:p:h/javascript.vim
so <sfile>:p:h/php.vim

syn region notesJS matchgroup=javascript start="**jsbegin**" end="**jsend**" contains=javascript
syn region notesPHP matchgroup=php start="**phpbegin**" end="**phpend**" contains=php

Mas é necessário aplicar apenas o JavaScript em destaque ao texto dentro do intervalo definido:

    
por Matthew 20.12.2011 / 22:57

1 resposta

2

As linhas necessárias são as seguintes:

" Include PHP highlighting between **phpbegin** and **phpend** tags
syn include @notesPHP syntax/php.vim
syn region phpCustom start=+\*\*phpbegin\*\*+ keepend end=+\*\*phpend\*\*+ contains=@notesPHP

" Include JavaScript highlighting between **jsbegin** and **jsend** tags
syn include @notesJavaScript syntax/javascript.vim
syn region javaScriptCustom start=+\*\*jsbegin\*\*+ keepend end=+\*\*jsend\*\*+me=s-1 contains=@nJavaScript
    
por 21.12.2011 / 17:52