2012-11-08 16 views
5

Có công thức nào để tạo các ký tự tab tô sáng bằng một màu nhất định, nhưng chỉ chỉ trong khi tùy chọn expandtab được đặt? Tôi biết về 'listchars', nhưng tôi muốn có thể phân biệt "tab hợp lệ" từ "tab không hợp lệ".Đánh dấu các tab trong vim khi expandtab được thiết lập

+0

Điều gì làm cho tab "hợp lệ" hoặc "không hợp lệ"? – romainl

+0

"Không hợp lệ" có thể là một từ mạnh ... Tôi có nghĩa là một tab trong một tệp không sử dụng các tab thụt đầu dòng. Cách tôi sử dụng 'expandtab', nó luôn khớp với các thiết lập thụt lề tập tin. –

Trả lời

4

Bạn có thể thêm tùy chỉnh :match cho các ký tự tab dựa trên :autocmds, như thế này:

autocmd WinEnter,VimEnter * 
\ if &expandtab | 
\  silent! call matchadd('Error', '\t', 10, 31337) | 
\ else | 
\  silent! call matchdelete(31337) | 
\ endif 

(. Để đơn giản, điều này sử dụng một ID mã hóa cứng)

Ngoài ra, bạn có thể sử dụng một plugin như của tôi IndentConsistencyCop, mà kiểm tra cho cả hai indentation không phù hợp và không phù hợp của bộ đệm và các thiết lập của nó, và theo mặc định cũng làm nổi bật các dòng sai. (Trang plugin có liên kết đến các plugin thay thế.)

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