2013-02-25 18 views
9

Khi sử dụng tính năng ẩn của vim set cole=2, vim che giấu văn bản thích hợp cho bất kỳ điều gì được cấu hình trong cchar, và tô sáng nó bằng cách sử dụng nhóm Che giấu.Vim Conceal highlight

Vấn đề của tôi là tôi sử dụng tính năng che giấu trong c/C++ để thay thế hoạt động như &&||, vv cho unicode ⋀ ⋁ vv, và tôi cũng sử dụng concel trong html để thay thế các đối tượng văn bản như "& ccedil;" thành "ç".

Vì vậy, tôi có trong ~/.vim/sau/cú pháp/c.vim

hi clear Conceal 

và trong ~/.vim/sau/cú pháp/html.vim

hi Conceal cterm=NONE ctermbg=NONE ctermfg=darkblue 

Vấn đề là cài đặt này là toàn cầu. Nếu tôi mở một tập tin c, và sau đó tôi mở một tập tin html, khi tôi nhận được trở lại tập tin c nhóm Conceal được đánh dấu như là một bộ đệm cuối cùng mở ra.

Câu hỏi của tôi là: Tôi có thể đặt nhóm Che giấu được sử dụng cho một cái gì đó khác với Che giấu không? Nếu không, làm thế nào tôi có thể làm nổi bật cụ thể cho bộ đệm hiện tại (và không phải trên toàn cầu)?

Trả lời

7

Bạn không thể. Vâng, bạn có thể thiết lập :autocmds để chuyển đổi đánh dấu của nhóm Conceal tùy thuộc vào bộ đệm hiện tại, nhưng nó vẫn sẽ bị tắt đối với bộ đệm hiển thị không hoạt động của loại khác. Nói chung, các nhóm nổi bật là toàn cầu, và điều đó không có khả năng thay đổi.

Để giải quyết tình trạng khó xử của bạn, tôi sẽ chọn một điểm nổi bật cho Conceal đủ kín đáo cho việc sử dụng C/C++ của bạn, nhưng rõ ràng là hiển thị các thực thể HTML được thay thế. Đối với tôi, việc xóa hoàn toàn việc đánh dấu Conceal không phải là mục đích sử dụng; nó phải luôn luôn phục vụ như một lời nhắc nhở rằng những gì bạn thấy là không phải là nội dung thực sự trong văn bản.

+0

oh, tốt, quá tệ. Cảm ơn bạn anyway. – Akobold

Các vấn đề liên quan