2011-10-17 8 views
13

W vimie próbuję podświetlić mój ekran, gdy przekroczy on 80 znaków (jestem programistą jądra i jest to wymagane w przypadku kodu jądra). Używam następujących w moim pliku .vimrc to zrobićPodświetlanie ponad 80 znaków za pomocą niestandardowego szablonu kolorów

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

który został zaproponowany tutaj: Vim 80 column layout concerns

Jestem jednak colorblind iw rezultacie nie mogę użyć domyślnego colorscheme i patrz tekst na na ekranie, więc zmienię domyślny schemat kolorów również za pomocą :colorscheme torte. Wygląda jednak na to, że colorcheme nadpisuje podświetlanie na mnie (zaznacza się dobrze, gdy nie mam określonego koloru, i nie jest, gdy jest określony).

Czy ktoś ma jakieś pomysły na temat tego, jak można to zmienić przy zmianie colorscheme? Dzięki za pomoc,

Odpowiedz

15

To dlatego, że większość kolorystyka mają tę linię w ich początku:

hi clear 

to wyczyszczenie wszystkich grup podkreślając utworzony (utworzono OverLength). Jest to dobre, ponieważ żadna kolorystyka nie zawiera wszystkiego, a kolory z poprzedniego schematu mogły pozostać widoczne.

Aby rozwiązać, zamiast tworzyć nową grupę, dopasuj ten wzorzec jako Error, który jest domyślną grupą Vima, będzie obecny w każdym schemacie kolorów. Zmień swoje dwie linie przez jeden prosty sposób:

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

Naprawiono to za mnie. Dziękuję bardzo – SaxyTimmy

+0

@sidyll, Podświetlenie w jakiś sposób znika podczas tworzenia podzielonego okna. – vrybas

+0

@vrybas Nie jestem pewien, czy to rozumiem. Czy to podział pionowy? Rozważ umieszczenie osobnego pytania ;-) – sidyll

20

Jeśli masz Vima 7.3+ można użyć:

:set colorcolumn=81 
+0

To naprawdę miłe, nigdy o tym nie wiedziałem. Zawsze tworzyłem podświetlone pasujące elementy, co jest lepsze w przypadku pracy z wyrównanym tekstem. +1, i będzie to kwestia preferencji między tą odpowiedzią a moją. Ten jest dość łatwy do ustawienia, jednak podświetlana jest tylko jedna kolumna (nic, co "' set cc = 80,81,82,83,84,85' nie rozwiąże :-). – sidyll

+0

Tak ... Widziałem to rozwiązanie wcześniej, ale mam 7.2 i nie mam go jeszcze ulepszać w pracy. Dzięki za pomoc! – SaxyTimmy

+0

@sidyll można również użyć liczb w stosunku do 'textwidth'. 'set colorcolumn = + 1, + 2, + 3'. Zobacz ': h 'cc'', aby uzyskać więcej informacji. –

0

Można użyć Colorscheme zdarzenie zdefiniować sznurów grupę:

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

Zauważ, że należy albo umieścić wszystkie połączenia do :colorscheme że wydarzy w vimrc po tej definicji lub wyraźnie uruchom to wydarzenie za pomocą :doautocmd AddOverLength ColorScheme.

Powiązane problemy