Destaque da sintaxe personalizada do Vim, inclua 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.

Quero definir um intervalo que aplique o realce da sintaxe de um arquivo de sintaxe existente (por exemplo, php, javascript ou o que for) 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**

Então, eu estou procurando algo assim para colocar no arquivo de sintaxe 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 deve aplicar apenas o realce javascript ao texto dentro do intervalo definido:

Mateus
fonte

Respostas:

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
Mateus
fonte
Eu acho que me = s-1 significa que a região highligh está antes de jsend. Então eu posso usar start=+\*\*jsbegin\*\*+ms=e+1? Eu tentei, mas o jsbegin ainda está destacado na sintaxe do JavaScript.
Gqqnbig
@LoveRight, você já resolveu isso? Estou tendo o mesmo problema.
precisa saber é o seguinte