Невозможно сделать серый символ эла с помощью .vimrc
Я хочу иметь серый символ eol, установленный
set list listchars=tab:>>,trail:$
где нет пробелов рядом с символом ":"
Я получаю no eol character для вышеуказанного кода, если я не использую пробелы рядом с ":".
Я получаю зеленый символ завершения, если я использую одно пространство в
- - tab:[space]>> --
хотя я не задал его явно
такое, что
alt text http://dl.getdropbox.com/u/175564/trailingCharacter.png
(старый код в терминале)
Как вы можете сделать символ eol серым в Vim, и заставить его работать снова?
Ответы
Ответ 1
Есть две группы подсветки: SpecialKey и NonText. Заключительные символы, которые вы указываете, относятся к NonText.
Попробуйте что-нибудь подобное (y/pasteed):
set list
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
hi NonText ctermfg=7 guifg=gray
Это работает для вас, или я понял вопрос неправильно (вполне возможно).
Ответ 2
В списках trail
, tab
и nbsp
используется группа выделения SpecialKey
, поэтому вы можете использовать это:
highlight SpecialKey ctermfg=8
чтобы сделать символ $
серым. Если у вас включено 256 цветов, вы можете использовать другой оттенок серого, например 243 и т.д.
Ответ 3
Если вы хотите, чтобы eol был серым, укажите eop suboption listchars
вместо отслеживания:
set list listchars=tab:>>,eol:$
trail показывает ненужные пробельные символы в конце строк, а не конец строк.
Если вы хотите установить цвет eol, вы должны установить подсветку группы NonText
:
highlight NonText ctermfg=8 guifg=gray
Если вы укажете как ctermfg
, так и guifg
, подсветка будет работать как в графическом интерфейсе, так и в терминале.
Я должен указать на некоторые недостатки:
- Выделение тильд-символов после окончания буфера - это
так же, как выделение знаков эла. Я думаю, что невозможно
отделить их; их выделение определяется путем выделения
of
NonText
. Поэтому, если вы установите серые оттенки, вы будете серыми тильдами.
- На моем терминале
ctermfg=8
делает красный и не серый текст.