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?

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.


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ć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.