Подтвердить что ты не робот

Невозможно сделать серый символ эла с помощью .vimrc

Я хочу иметь серый символ eol, установленный

set list listchars=tab:>>,trail:$

где нет пробелов рядом с символом ":"

Я получаю no eol character для вышеуказанного кода, если я не использую пробелы рядом с ":".

Я получаю зеленый символ завершения, если я использую одно пространство в

- - tab:[space]>> --

хотя я не задал его явно

такое, что

alt text http://dl.getdropbox.com/u/175564/trailingCharacter.png (старый код в терминале)

Как вы можете сделать символ eol серым в Vim, и заставить его работать снова?

4b9b3361

Ответ 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 делает красный и не серый текст.