Làm nổi bật cú pháp tùy chỉnh Vim, bao gồm cú pháp ngôn ngữ khác trong một phạm vi được chỉ định


4

VIM 7.3.46

Tôi có một tệp cú pháp tùy chỉnh được xác định để làm cho ghi chú của tôi dễ đọc hơn.

Tôi muốn xác định một phạm vi sẽ áp dụng tô sáng cú pháp từ tệp cú pháp hiện có (ví dụ: php, javascript hoặc bất cứ thứ gì) trong các ký tự ranh giới nhất định.

Ví dụ,

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

Vì vậy, tôi đang tìm kiếm một cái gì đó như thế này để đặt vào tệp cú pháp 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

Nhưng nó chỉ phải áp dụng đánh dấu javascript cho văn bản trong phạm vi được xác định:

Câu trả lời:


2

Các dòng yêu cầu như sau:

" 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

Tôi nghĩ tôi = s-1 có nghĩa là vùng highligh nằm trước jsend. Sau đó tôi có thể sử dụng start=+\*\*jsbegin\*\*+ms=e+1 ? Tôi đã thử nó nhưng jsbegin vẫn được tô sáng bằng cú pháp JavaScript.
Gqqnbig

@LoveRight bạn đã bao giờ giải quyết điều này? Tôi có cùng một vấn đề.
Azsgy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.