2013-05-07 34 views
5

Trước sự ngạc nhiên lớn nhất của tôi, đa dòng chú thích cú pháp trong TeX:Multiline Comments màu cú pháp trong VIM cho TeX tập tin

\usepackage{verbatim} 
... 
\begin{comment} 
    I don't like this line anymore. Please don't print it. 
\end{comment} 

không được công nhận/xử lý bằng $VIMRUNTIME/syntax/tex.vim và do đó không có màu như nhận xét. Có một VIM scripting Guru có thể có một giải pháp xung quanh, như tôi chắc chắn rất nhiều người đã tìm kiếm nó?

Cảm ơn

VIM v7.3

Trả lời

8

Một tìm kiếm nhỏ trên VIM nghệ đánh dấu màu đã giúp tôi viết dòng mã này ai làm gần như toàn bộ công việc khi được bổ sung vào ~/.vim/after/syntax/tex.vim (bạn có thể cần phải tạo thư mục trong thư mục ~/.vim của bạn):

syn region texComment start="\\begin{comment}" end="\\end{comment}" 

vấn đề duy nhất của tôi là nó không thể tìm thấy làm thế nào để vô hiệu hóa các khớp nếu nó gặp end-of-file trước khi kết thúc bình luận env sắt. Bất cứ ai có một công việc xung quanh?

NB: Lệnh này không hỗ trợ làm tổ, đó là một điều tốt vì cao su không và nhiều khả năng bạn sẽ phải chưa từng có \end{comment}

+0

Bắt đầu khu vực độc lập với kết quả cuối cùng có thể gây ra sự cố. Nhưng đây không phải là một trường hợp góc khá mơ hồ sao ?! –

+2

Thay vì sửa đổi cú pháp ban đầu, chỉ cần đặt dòng trong '~/.vim/after/syntax/tex.vim' –

+0

@IngoKakat: Cảm ơn độ chính xác của'/after/syntax'. Liên quan đến nhận xét đầu tiên của bạn, tôi đã thử những thứ như 'syn region texComment start ="/\\ bắt đầu {comment} \ _. * \\ end {comment}/"end =" \\ end {comment} "' nhưng vấn đề cơ bản là nếu mô hình kết thúc được khớp trong mẫu bắt đầu (bắt buộc phải kiểm tra nó tồn tại), tôi không thể làm cho nó được khớp lại trong mẫu kết thúc. Từ [VIM Doc] (http://vimdoc.sourceforge.net/htmldoc/syntax.html): kết quả phù hợp với mẫu kết thúc sẽ không bao giờ chồng chéo với mẫu bắt đầu. –

2

Có thêm nhiều lựa chọn làm thế nào để nhận xét mã (xem multiline comment), vì vậy đây là nội dung của tôi ~/.vim/after/syntax/tex.vim:

syn region texComment start="\\begin{comment}" end="\\end{comment}" 
syn region texComment start="\\iffalse" end="\\fi" 
syn region texComment start="\\ifx true false" end="\\fi" 
Các vấn đề liên quan