Невозможно сделать символ серого eol .vimrc - PullRequest
21 голосов
/ 24 мая 2009

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

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

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

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

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

- - tab:[space]>> --

хотя я не настроил его явно

такой, что

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

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

Ответы [ 3 ]

34 голосов
/ 27 мая 2009

Есть две группы подсветки: SpecialKey и NonText. Последние символы, которые вы упоминаете, принадлежат к нетекстовым.

Попробуйте что-то вроде этого (y / вставлено):

set list
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
hi NonText ctermfg=7 guifg=gray

Это работает для вас, или я неправильно понял вопрос (вполне возможно).

8 голосов
/ 24 мая 2009

Списки trail, tab и nbsp используют группу выделения SpecialKey, поэтому вы можете использовать это:

highlight SpecialKey ctermfg=8

, чтобы сделать символ $ серым. Если у вас включено 256 цветов, вы можете использовать другой оттенок серого, например 243 и т. Д.

4 голосов
/ 29 мая 2009

Если вы хотите, чтобы eol был серым, укажите подопцию eol listchars вместо trail :

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

trail показывает ненужные пробельные символы в конце строк, а не в конце самих строк.

Если вы хотите установить цвет eol , вы должны установить выделение группы NonText:

highlight NonText ctermfg=8 guifg=gray

Если вы укажете ctermfg и guifg, подсветка будет работать как в графическом интерфейсе, так и в терминале.

Я должен указать на некоторые недостатки:

  • Подсветка символов тильды после конца буфера так же, как выделение эол-знаков. Я думаю, что это невозможно отделить те; их подсветка определяется подсветкой NonText. Поэтому, если вы установите серые эолы, вы будете серыми тильдами.
  • На моем терминале ctermfg=8 создает красный, а не серый текст.
...