Penandaan sintaks khusus Vim, sertakan sintaks bahasa lain dalam rentang yang ditentukan

4

VIM 7.3.46

Saya memiliki file sintaks khusus yang ditentukan untuk membuat catatan saya lebih mudah dibaca.

Saya ingin menentukan rentang yang akan menerapkan penyorotan sintaksis dari file sintaksis yang ada (misalnya php, javascript atau apa pun) dalam karakter batas tertentu.

Sebagai contoh,

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**

Jadi saya mencari sesuatu seperti ini untuk dimasukkan ke dalam file sintaks 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

Tapi itu hanya harus menerapkan penyorotan javascript ke teks dalam rentang yang ditentukan:

Matius
sumber

Jawaban:

2

Baris yang diperlukan adalah sebagai berikut:

" 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
Matius
sumber
Saya pikir saya = s-1 berarti wilayah highligh sebelum jsend. Lalu bisakah saya menggunakan start=+\*\*jsbegin\*\*+ms=e+1? Saya sudah mencobanya tetapi jsbegin masih disorot dalam sintaksis JavaScript.
Gqqnbig
@LightRight apakah Anda pernah memecahkan ini? Saya mengalami masalah yang sama.
Azsgy