Как выделить текущую строку и курсор в .vimrc?

14

Я пытаюсь выделить текущую строку, а также позицию курсора в Vim. Вот мой .vimrc:

set cursorline
hi CursorLine ctermbg=8 ctermfg=15 "8 = dark gray, 15 = white
hi Cursor ctermbg=15 ctermfg=8

Проблема, с которой я сталкиваюсь, заключается в том, что текущий цвет фона строки скрывает цвет фона курсора, поэтому он выглядит следующим образом:

Текущая строка выделена, а курсор - нет.

Очевидно, я могу сказать, где находится курсор, потому что цвет переднего плана почти черный, но когда курсор находится на пробеле или в начале / конце строки, я не могу понять, где он находится, пока я не переместу его.

Курсор находится в конце строки, хотя вы никогда этого не узнаете.

Что я здесь не так делаю?

Дэвид Кеннеди
источник

Ответы:

14

Вы должны изменить цвет линии курсора на цвет, отличный от цвета курсора. Если вы находитесь в эмуляторе терминала, таком как stили rxvt, Vim не может изменить цвет вашего курсора; это всегда будет цвет, который решит сделать ваше терминальное приложение. Только графическая версия Vim способна изменить цвет вашего курсора.

Вы можете изменить цвет курсора через конфигурацию терминала.

Некоторые ~/.Xdefaults/ ~/.Xresourcesпримеры:

XTerm*cursorColor: #FFFFFF
URxvt.cursorColor: white

Вы также можете использовать команду Vim, :set cursorcolumnчтобы поместить курсор в перекрестие.


источник
2
vimможет изменить цвет курсора, на таких терминалах, как xtermэто позволяет вам изменить его динамически ( printf '\033]12;#f50\7'например). Вы также можете изменить его на мигающий блок или подчеркивание ( \e[1 qили \e[3 q)
Стефан Шазелас
Это интересно. Я не знал, что эти побеги существуют. Там же информация относительно их использования с Vim здесь .
6

Если вы не хотите вводить команду каждый раз при запуске Vim, вы должны поместить команды в свой .vimrcфайл.

whereis vim    
*#type in your linux terminal* 

(у вас будет другое местоположение, но ваша цветовая схема будет здесь /usr/share/vim/vim74/colors/.

Вы можете перечислить существующие цветовые схемы с

ls /usr/share/vim/vim74/colors/    

попробуйте разные цветовые схемы из перечисленных

:colorscheme desert
:colorscheme delek

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

set cursorcolumn 
hi CursorColumn ctermbg=8

переключаться (с восклицательным знаком, работает со всей командой set)

set cursorcolumn!

например:

set cursorline
set cursorline!

hi CursorLine ctermbg=235
*#defines a gray colour for the horizontal line*

Вот таблица с цветами xterm: ссылка

Используйте число путем определения ctermbg=... (... = номер цвета из таблицы) Вы также можете попробовать ctermfg=..., но его не стоит использовать.

Spinne
источник