Jak wyróżnić bieżącą linię i kursor w .vimrc?

14

Próbuję podświetlić bieżącą linię, a także pozycję kursora w Vimie. Oto mój .vimrc:

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

Występuje problem polegający na tym, że bieżący kolor tła linii pokrywa kolor tła kursora, więc wygląda to tak:

Bieżąca linia jest podświetlona, ​​ale kursor nie.

Mogę oczywiście powiedzieć, gdzie jest kursor, ponieważ kolor pierwszego planu jest prawie czarny, ale kiedy kursor znajduje się na spacji lub na początku / końcu linii, nie mam pojęcia, gdzie on jest, chyba że go przesunę.

Kursor znajduje się na końcu linii, choć nigdy byś tego nie wiedział.

Co robię tutaj źle?

Big McLargeHuge
źródło

Odpowiedzi:

14

Musisz zmienić kolor linii kursora na kolor inny niż kolor kursora. Jeśli korzystasz z emulatora terminala, takiego jak stlub rxvt, Vim nie może zmienić koloru kursora; zawsze będzie to kolor, który zdecyduje się na to twoja aplikacja terminalowa. Tylko graficzna wersja Vima może zmienić kolor kursora.

Możesz jednak zmienić kolor kursora poprzez konfigurację terminala.

Niektóre ~/.Xdefaults/ ~/.Xresourcesprzykłady:

XTerm*cursorColor: #FFFFFF
URxvt.cursorColor: white

Możesz także użyć polecenia Vima, :set cursorcolumnaby umieścić kursor w celowniku.


źródło
2
vimmoże zmienić kolor kursora, na takich terminalach, xtermktóre pozwalają na dynamiczną zmianę ( printf '\033]12;#f50\7'na przykład). Możesz także zmienić go na migający blok lub podkreślić ( \e[1 qlub \e[3 q)
Stéphane Chazelas,
To interesujące. Nie wiedziałem, że te sekwencje ucieczki istnieją. Nie ma informacji o stosowaniu z vim tutaj .
6

Jeśli nie chcesz wpisywać polecenia za każdym razem, gdy uruchamiasz Vima, musisz umieścić polecenia w swoim .vimrcpliku.

whereis vim    
*#type in your linux terminal* 

(będziesz mieć inną lokalizację, ale Twój schemat kolorów będzie tutaj /usr/share/vim/vim74/colors/.

Możesz wymienić istniejące schematy kolorów za pomocą

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

wypróbuj inne schematy kolorów z wymienionych

:colorscheme desert
:colorscheme delek

Następujące polecenie w Vimie aktywuje pionową linię w miejscu kursora.

set cursorcolumn 
hi CursorColumn ctermbg=8

przełączać (ze znakiem wykrzyknika, działa ze wszystkimi poleceniami set)

set cursorcolumn!

na przykład:

set cursorline
set cursorline!

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

Oto tabela z kolorami xterm: link

Użyj liczby, definiując ctermbg=... (... = numer koloru z tabeli) Możesz także spróbować ctermfg=..., ale nie warto go używać.

spinne
źródło