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

В Vim вы можете остановить изменение цвета символов пробела с помощью "set cursorline"?

В этом скриншоте Vim вы можете видеть, что при перемещении курсора по строке он меняет нормальный цвет пробельных символов (показан слева) от серого до черного. Могу ли я остановить это и оставить их серым всегда, независимо от положения курсора?

enter image description here

Я попытался установить их в цветовой схеме, но не повезло:

hi SpecialKey  guibg=bg  guifg=#CCCCCC gui=none
hi NonText     guibg=bg  guifg=#CCCCCC gui=none
4b9b3361

Ответ 1

Вы можете использовать :match, чтобы выделить вкладки.

:match NonText '^\s\+'

Это похоже на отмену строки курсора. Было бы лучше, конечно, использовать matchadd(), но, по-видимому, он перекрывается линией курсора. Там может быть способ заставить его работать

Ответ 2

Да, вы можете. От :help listchars (в конце):

Выделение "NonText" будет использоваться для "eol", "extends" и "предшествует". "SpecialKey" для "nbsp", "tab" и "trail".

С помощью этих знаний вы можете соответствующим образом изменить свою цветовую схему или добавить вызов highlight в свой vimrc.

Ответ 3

Я считаю, что у вас есть "линия маршрута". Группа выделения CursorLine определяет основные моменты для этого. Либо вы set nocursorline, (который может ускорить движение линии), либо измените цвета CursorLine групп fg.

Ответ 4

Следующие строки в .vimrc исправили проблему для меня.

au VimEnter * call matchadd('SpecialKey', '^\s\+', -1)
au VimEnter * call matchadd('SpecialKey', '\s\+$', -1)

Он переопределяет приложение других стилей для вкладок и конечных пробелов внутри строки курсора.