2011-10-17 29 views
13

Trong vim, tôi cố gắng làm nổi bật màn hình của mình khi nó vượt quá 80 ký tự (tôi là một nhà phát triển hạt nhân và đây là yêu cầu đối với mã hạt nhân). Tôi đang sử dụng sau đây trong tập tin vimrc của tôi để làm điều nàyLàm nổi bật hơn 80 ký tự bằng màu không chuẩn tiêu chuẩn

highlight OverLength ctermbg=red ctermfg=white guibg=#59292 
match OverLength /\%81v.\+/ 

mà đã được đề xuất ở đây: Vim 80 column layout concerns

Tuy nhiên, tôi mù màu và kết quả là tôi không thể sử dụng colorscheme mặc định và thấy dòng chữ trên màn hình nên tôi cũng thay đổi màu mặc định của mình bằng cách sử dụng :colorscheme torte. Tuy nhiên, nó xuất hiện rằng colorscheme ghi đè lên làm nổi bật trên tôi (nó nổi bật tốt khi tôi không có các colorscheme quy định, và không khi nó được chỉ định).

Có ai có bất kỳ ý tưởng nào về cách thực hiện công việc này với thay đổi colorscheme không? Nhờ sự giúp đỡ của bạn,

Trả lời

15

Đó là bởi vì hầu hết các tông màu có dòng này trong đầu của họ:

hi clear 

này rõ ràng nhóm tất cả làm nổi bật được tạo (bạn đã tạo OverLength). Điều này là tốt, bởi vì không có colorcheme có mọi thứ được thiết lập, và màu sắc từ sơ đồ trước đó được sử dụng có thể vẫn xuất hiện.

Để giải quyết, thay vì tạo nhóm mới, khớp với mẫu này là Error là nhóm Vim mặc định, sẽ có mặt trong mọi bảng màu. Thay đổi hai dòng của bạn bằng một cách đơn giản:

match Error /\%81v.\+/ 
+0

Đã khắc phục sự cố cho tôi. Cảm ơn bạn rất nhiều – SaxyTimmy

+0

@sidyll, Làm nổi bật bằng cách nào đó biến mất khi tạo một cửa sổ chia nhỏ. – vrybas

+0

@vrybas Tôi không chắc liệu tôi có hiểu không. Đó có phải là phân chia theo chiều dọc không? Vui lòng xem xét đăng câu hỏi riêng ;-) – sidyll

20

Nếu bạn có Vim 7.3+ bạn có thể sử dụng:

:set colorcolumn=81 
+0

Điều đó thực sự hay, không bao giờ biết về điều đó. Tôi luôn tạo các kết quả nổi bật, đây là cách tốt hơn để làm việc với văn bản được căn chỉnh. 1, và nó sẽ là vấn đề ưu tiên giữa câu trả lời này và của tôi. Điều này là khá dễ dàng để thiết lập, tuy nhiên chỉ có một cột được đánh dấu (không có gì mà một ': set cc = 80,81,82,83,84,85' không giải quyết :-). – sidyll

+0

Vâng ... Tôi đã thấy giải pháp đó trước đó, nhưng tôi có 7.2 và tôi không phải nâng cấp nó tại nơi làm việc. Cảm ơn bạn đã giúp đỡ! – SaxyTimmy

+0

@sidyll bạn cũng có thể sử dụng các số liên quan đến 'textwidth'. 'set colorcolumn = + 1, + 2, + 3'. Xem ': h 'cc'' để biết thêm thông tin. –

0

Bạn có thể sử dụng Colorscheme kiện để xác định OverLength nhóm:

augroup AddOverLength 
    autocmd! 
    autocmd ColorScheme * :highlight OverLength ctermbg=red ctermfg=white guibg=#59292 
augroup END 

Lưu ý rằng bạn phải hoặc là đặt tất cả các cuộc gọi đến :colorscheme điều đó xảy ra trong vimrc của bạn sau khi định nghĩa này hoặc khởi chạy sự kiện này một cách rõ ràng bằng cách sử dụng :doautocmd AddOverLength ColorScheme.

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