Wie ändere ich meine Vim-Hervorhebungslinie so, dass sie nicht unterstrichen wird?

91

In einigen Farbschemata ändert die Hervorhebung der aktuellen Linie den Hintergrund, in anderen wie Desert ist die aktuelle Linie unterstrichen.

Ich möchte die aktuelle Linienhervorhebung in Desert ändern, um eine andere Hintergrundfarbe anstelle einer Unterstreichung zu verwenden. Wie kann ich das machen?

Mein .vimrc:

set cursorline
highlight Cursorline cterm=bold

Update: Damit ist .vimrcdas Problem behoben

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40
wie er
quelle
6
Wahrscheinlich wegen des unglücklichen Wortlauts der Frage. Ich habe mir erlaubt, es umzuschreiben, um die Aussage zu verdeutlichen, und auch die negative Abstimmung neutralisiert.
ib.

Antworten:

92
color desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

desertist dein Farbschema. (sollte zuerst kommen)
lege es in dein~/.vimrc

kev
quelle
4
Wenn Sie ein Farbschema nach diesen Zeilen im vimrc laden, werden durch das neue Farbschema möglicherweise Probleme behoben. Testen Sie in der Vim-Befehlszeile, bevor Sie versuchen, vimrc einzufügen.
Herbert Sitz
Ich weiß, wie ich es reparieren kann. In Ihrem Code sollten wir die Unterstreichung in Fettdruck ändern!
Ashim
3
@ Idigas colorist eine Abkürzung voncolorscheme
kev
1
Dies funktioniert gut in gvim oder vim-gtk. In Terminal Vim wird jedoch nur die Unterstreichung aus der aktuellen Zeile entfernt. Die aktuelle Zeile wird nicht hervorgehoben (zumindest nicht für mich!).
Omid Kamangar
66

Das funktioniert bei mir besser (in jedem Terminal).

:hi CursorLine   cterm=NONE ctermbg=darkred ctermfg=white

Es ist die Einstellung der Farbe für das Terminal: Hintergrundfarbe - ctermbg und Textfarbe - ctermfg . Fügen Sie zur Verwendung in einem grafischen Fenster Parameter hinzuguibg=darkred guifg=white

Sie können die entsprechende Spalte auch mit dem folgenden Befehl markieren:

:set cursorcolumn

Es ist nützlich, die Hervorhebung durch Drücken einer Taste im Editor ein- und auszuschalten. Fügen Sie diese Zeile zu Ihrem vimrc hinzu :

:nnoremap H :set cursorline! cursorcolumn!<CR>

Wenn Sie 'H' eingeben , wird die Hervorhebung ein- und ausgeschaltet (wenn Sie möchten, ordnen Sie sie einer anderen Taste zu.)

Weitere Informationen finden Sie im Artikel: http://vim.wikia.com/wiki/Highlight_current_line

srnka
quelle
9
Und cterm=NONEist die Einstellung, die letztendlich die Unterstreichung der Cursorzeile entfernt (in meinem Fall).
Tbloncar
1
Hwird standardmäßig verwendet, um an den Anfang des Puffers zu gelangen.
Quapka
20

für einen ähnlichen Stil wie den, den Sie in gvim im Terminal erhalten, wobei das Syntax-Highlight beibehalten wird:

" first thing is entering vim mode, not plain vi
set nocompatible
" force 256 colors on the terminal
set t_Co=256
" load the color scheme before anything
colorscheme darkblue " or desert... or anything
" the syntax cmd is when the colorscheme gets parsed, i think..
syntax on
" might not be on by default, this enable the cursor line feature
set cursorline

" set the prefered colours, pick one line here only.
" dark grey, better you can get if you don't support 256 colours
hi CursorLine   cterm=NONE ctermbg=8 ctermfg=NONE
" light grey, no 256 colors
hi CursorLine   cterm=NONE ctermbg=7 ctermfg=NONE
" dark redish
hi CursorLine   cterm=NONE ctermbg=52 ctermfg=NONE
" dark bluish
hi CursorLine   cterm=NONE ctermbg=17 ctermfg=NONE
" very light grey
hi CursorLine   cterm=NONE ctermbg=254 ctermfg=NONE
" yelowish
hi CursorLine   cterm=NONE ctermbg=229 ctermfg=NONE
" almost black
hi CursorLine   cterm=NONE ctermbg=234 ctermfg=NONE
gcb
quelle
Sie können die Umgebungsvariable auch so einstellen, export TERM=xterm-256colordass 256 Farben funktionieren. Die vollständige Farbkarte finden Sie hier: upload.wikimedia.org/wikipedia/de/1/15/Xterm_256color_chart.svg
apurkrt
1
Übrigens set cursorlinefehlt in Ihrem .vimrc-Auszug. Ich habe 10 Minuten
gebraucht
13

Wenn Sie die Unterstreichung aktivieren möchten, verwenden Sie eine der folgenden Optionen:

:hi CursorLine cterm=underline
:hi CursorLine gui=underline

Verwenden Sie andernfalls eine der folgenden Optionen:

:hi CursorLine cterm=none
:hi CursorLine gui=none
user5920118
quelle
8

Ich hatte ein ähnliches Problem beim Festlegen der Cursorzeilen-Hervorhebung, aber mein Problem war auf den Befehl mksession zurückzuführen, mit dem ich die Sitzungsinformationen beim Beenden von vim gespeichert habe. Diese Sitzung wird dann beim Programmstart automatisch wiederhergestellt, wenn sie ohne Dateiargumente ausgeführt wird.

Wenn jemand ein solches .vimrc-Setup hat, können Sie .vimrc Folgendes hinzufügen, um die Hervorhebung der Cursorzeile korrekt festzulegen: -

function s:SetCursorLine()
    set cursorline
    hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()

Eine Erklärung, warum dies funktioniert. Zusammen mit verschiedenen Puffer- und Fensterinformationen speichert mksession den aktuellen Namen des Farbschemas. Dies wird während des Programmstarts durch Sitzungswiederherstellung wiederhergestellt. Da die Sitzungswiederherstellung jedoch normalerweise nach dem Ausführen von .vimrc durchgeführt wird (normalerweise mithilfe einer Funktion, die über 'autocmd VimEnter *' aufgerufen wird), wird die Einstellung für die Hervorhebung der Cursorzeile in .vimrc standardmäßig für das wiederhergestellte Farbschema zurückgesetzt.

Die obige Funktion, die über das Autocmd aufgerufen wird, wird ausgeführt, nachdem die Initialisierung abgeschlossen ist, und setzt daher die Hervorhebung der Cursorzeile erfolgreich.

HTH.

Hari Mahadevan
quelle