Wie hebe ich die aktuelle Zeile und den Cursor in .vimrc hervor?

14

Ich versuche, die aktuelle Zeile sowie die Cursorposition in Vim hervorzuheben. Hier ist meine .vimrc:

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

Das Problem, das ich habe, ist, dass die Hintergrundfarbe der aktuellen Linie die Hintergrundfarbe des Cursors überdeckt. So sieht es also aus:

Die aktuelle Zeile ist markiert, der Cursor jedoch nicht.

Ich kann natürlich erkennen, wo sich der Cursor befindet, weil die Vordergrundfarbe fast schwarz ist, aber wenn sich der Cursor auf einem Leerzeichen oder am Anfang / Ende einer Zeile befindet, habe ich keine Ahnung, wo er sich befindet, es sei denn, ich bewege ihn.

Der Cursor befindet sich am Ende der Zeile, obwohl Sie es nie erfahren würden.

Was mache ich hier falsch?

David Kennedy
quelle

Antworten:

14

Sie müssen die Farbe Ihrer Cursorlinie in eine andere Farbe als die Farbe Ihres Cursors ändern. Wenn Sie sich in einem Terminal-Emulator wie stoder befinden rxvt, kann Vim die Farbe Ihres Cursors nicht ändern. Es wird immer die Farbe sein, die Ihre Terminalanwendung dafür bestimmt. Nur die grafische Version von Vim kann die Farbe Ihres Cursors ändern.

Sie können die Cursorfarbe jedoch über die Terminalkonfiguration ändern.

Einige ~/.Xdefaults/ ~/.XresourcesBeispiele:

XTerm*cursorColor: #FFFFFF
URxvt.cursorColor: white

Sie können auch den Befehl Vim verwenden :set cursorcolumn, um den Cursor in ein Fadenkreuz zu setzen.


quelle
2
vimkönnte die Cursorfarbe ändern, auf diesen Terminals xtermkönnen Sie es dynamisch ändern ( printf '\033]12;#f50\7'zum Beispiel). Sie können es auch in einen blinkenden Block ändern oder ( \e[1 qoder \e[3 q) unterstreichen
Stéphane Chazelas
Das ist interessant. Ich wusste nicht, dass diese Fluchtsequenzen existieren. Informationen zur Verwendung mit vim finden Sie hier .
5

Wenn Sie den Befehl nicht jedes Mal eingeben möchten, wenn Sie Vim starten, müssen Sie die Befehle in Ihre .vimrcDatei einfügen.

whereis vim    
*#type in your linux terminal* 

(Sie werden einen anderen Ort haben, aber Ihr Farbschema wird hier sein /usr/share/vim/vim74/colors/.

Sie können die vorhandenen Farbschemata mit auflisten

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

Probieren Sie andere als die aufgeführten Farbschemata aus

:colorscheme desert
:colorscheme delek

Der folgende Befehl in Vim aktiviert eine vertikale Linie an der Cursorposition.

set cursorcolumn 
hi CursorColumn ctermbg=8

umschalten (mit dem Ausrufezeichen, funktioniert mit allen Set-Befehlen)

set cursorcolumn!

beispielsweise:

set cursorline
set cursorline!

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

Hier ist eine Tabelle mit xterm Farben: Link

Verwenden Sie eine Nummer, indem Sie definieren ctermbg=... (... = Farbnummer aus der Tabelle). Sie können es auch versuchen ctermfg=..., aber es lohnt sich nicht, sie zu verwenden.

spinne
quelle