Come impostare il colore di sfondo solo per la finestra attiva di Vim?


16

Una funzione piccola ma visivamente gradevole, e leggermente aggiunta all'usabilità, vorrei che Vim usasse un colore di sfondo diverso per la finestra attiva.

Ecco uno schizzo di ciò che sto cercando:

inserisci qui la descrizione dell'immagine

Normalmente quel vim avrebbe tutto lo sfondo in nero, ma se solo la finestra attiva avesse il suo colore per evidenziare l'attenzione dell'utente. Evidenziare solo la barra di stato non è sufficiente!

Risposte:


8

Heptite, grazie per l'idea.

Sostituisco semplicemente WinEnter e WinLeave autocmd per aggiungere / rimuovere i numeri di riga davanti a ogni riga:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

Ora è più elegante tenere traccia di quale finestra è attiva.


Questo è fico. Peccato che non mi piacciano molto i numeri di riga, quindi è troppo antiestetico.
unperson325680,

3

I gruppi di evidenziazione che controllano il colore di sfondo predefinito sono " Normal" e " NonText". Sfortunatamente si tratta di punti salienti "globali" e non possono essere "localizzati" in base alla finestra.

Tuttavia, ecco un brutto esempio kludgy:

augroup BgHighlight
    autocmd!
    evidenziare ActiveWindow guibg = lightblue
    autocmd WinEnter * call matchadd ('ActiveWindow', '. *', 10, 1682)
    autocmd WinLeave * call matchdelete (1682)
augroup END

doautocmd BgHighlight WinEnter -

Dato che questo è solo un esempio, dovrai modificarlo per soddisfare le tue esigenze individuali, come l'aggiunta di un evidenziatore ctermbg = ... insieme a guibg = ...

Lo svantaggio è che questo evidenzierà solo lo sfondo del testo esistente nei file, non l'intera riga / finestra. (Come ho detto, brutto e kludgy.)


Bel pensiero, ma il modello .*corrisponde solo al testo di un file; niente dal resto dello sfondo. Inoltre, l'ho fatto funzionare solo nel terminal con ctermbgproprietà. Strano ...
unperson325680

Scusa, avrei dovuto essere più chiaro nella mia risposta. L'ho modificato.
Heptite,
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.