В Vim вы можете остановить изменение цвета символов пробела с помощью "set cursorline"?
В этом скриншоте Vim вы можете видеть, что при перемещении курсора по строке он меняет нормальный цвет пробельных символов (показан слева) от серого до черного. Могу ли я остановить это и оставить их серым всегда, независимо от положения курсора?
![enter image description here]()
Я попытался установить их в цветовой схеме, но не повезло:
hi SpecialKey guibg=bg guifg=#CCCCCC gui=none
hi NonText guibg=bg guifg=#CCCCCC gui=none
Ответы
Ответ 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)
Он переопределяет приложение других стилей для вкладок и конечных пробелов внутри строки курсора.