Come posso cambiare la mia linea di evidenziazione Vim in modo che non sia una sottolineatura?


91

In alcuni schemi di colori la linea corrente che evidenzia cambia sfondo, in altri, come Desert, la linea corrente è sottolineata.

Voglio cambiare l'evidenziazione della linea corrente in Desert per usare un colore di sfondo diverso invece di sottolineare. Come lo posso fare?

Mio .vimrc:

set cursorline
highlight Cursorline cterm=bold

Aggiornamento: .vimrcquesto risolve il problema

colorscheme desert
set cursorline
hi CursorLine term=bold cterm=bold guibg=Grey40

7
Probabilmente a causa della sfortunata formulazione della domanda. Mi sono preso la libertà di riscriverlo per chiarire l'affermazione e ho anche neutralizzato il voto negativo.
ib.

Risposte:


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

desertè il tuo schema di colori. (dovrebbe venire prima)
mettilo nel tuo~/.vimrc


4
Se stai caricando uno schema di colori dopo quelle righe nel vimrc, il nuovo schema di colori potrebbe chiarire le cose. Prova sulla riga di comando di Vim prima di provare a inserire vimrc.
Herbert Sitz

So come risolverlo. Nel tuo codice dovremmo cambiare la sottolineatura in grassetto!
Ashim

3
@Idigas colorè un'abbreviazione dicolorscheme
kev

1
Funziona bene in gvim o vim-gtk. Ma in vim terminale rimuove solo la sottolineatura dalla riga corrente. Non evidenzia la riga corrente (almeno non per me!).
Omid Kamangar

66

Questo funziona meglio (in ogni terminale) per me.

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

È l'impostazione del colore per il terminale: colore di sfondo - ctermbg e colore del testo - ctermfg .Per l'utilizzo nella finestra grafica, aggiungere i parametriguibg=darkred guifg=white

Puoi evidenziare anche la colonna corrispondente, utilizzando il comando:

:set cursorcolumn

È utile attivare e disattivare l'evidenziazione premendo un tasto nell'editor. Aggiungi queste linee al tuo file vimrc :

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

digitando "H" attiverà e disattiverà l'evidenziazione (mappala su un altro tasto se lo desideri)

Puoi trovare maggiori informazioni nell'articolo: http://vim.wikia.com/wiki/Highlight_current_line


9
Ed cterm=NONEè l'impostazione che alla fine rimuove la sottolineatura della linea del cursore (nel mio caso).
tbloncar

1
Hè utilizzato per impostazione predefinita per spostarsi all'inizio del buffer.
quapka

20

per uno stile simile a quello che ottieni in gvim nel terminale, mantenendo l'evidenziazione della sintassi:

" 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

Puoi anche impostare la variabile d'ambiente export TERM=xterm-256coloraffinché 256 colori funzionino. La cartella colori completa è qui: upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg
apurkrt

1
Tra l'altro set cursorlinemanca dal tuo estratto .vimrc. Mi ci sono voluti 10 minuti per capirlo :)
apurkrt

13

Se vuoi attivare la sottolineatura, usa uno dei seguenti:

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

Altrimenti usa uno di quelli:

:hi CursorLine cterm=none
:hi CursorLine gui=none

8

Ho avuto un problema simile nell'impostazione dell'evidenziazione della linea del cursore, ma il mio era dovuto al comando mksession che stavo usando per salvare le informazioni sulla sessione durante l'uscita da vim. Questa sessione viene quindi ripristinata automaticamente durante l'avvio del programma, se viene eseguita senza argomenti di file.

Se qualcuno ha una configurazione .vimrc come questa, puoi aggiungere quanto segue a .vimrc per impostare correttamente l'evidenziazione della linea del cursore: -

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

Un po 'di spiegazione sul motivo per cui funziona. Insieme a varie informazioni sul buffer e sulla finestra, mksession salva il nome dello schema di colori corrente. Questo viene ripristinato durante l'avvio del programma tramite il ripristino della sessione. Tuttavia, poiché il ripristino della sessione viene in genere eseguito dopo che .vimrc è stato eseguito (in genere utilizzando una funzione invocata tramite "autocmd VimEnter *"), l'impostazione di evidenziazione della linea del cursore in .vimrc viene ripristinata per impostazione predefinita per lo schema dei colori ripristinato.

La funzione precedente, invocata tramite autocmd, verrà eseguita dopo che tutte le inizializzazioni sono state completate e quindi imposta con successo l'evidenziazione della linea del cursore.

HTH.


0

Devi aggiungere la .vimrcriga finale:

highlight lineNr term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

set cursorline

highlight CursorLine term=bold cterm=NONE ctermbg=none  ctermfg=none gui=bold

highlight CursorLineNr term=bold cterm=none ctermbg=none ctermfg=yellow gui=bold
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.