Come personalizzo i colori di Vimdiff?


22

Sto cercando di usare vimdiff come mio strumento di unione git, ma i colori utilizzati lo rendono insopportabile (almeno su Windows / Mingw): il colore di sfondo e il colore di primo piano sono gli stessi per alcune delle linee in conflitto, rendendolo inutilmente difficile per capire cosa sta succedendo (vedi le righe sotto contenenti include=).

esempio

Risposte:


13

I colori sono controllati da questi quattro gruppi di evidenziazione ( :help hl-DiffAdd):

DiffAdd     diff mode: Added line
DiffChange  diff mode: Changed line
DiffDelete  diff mode: Deleted line
DiffText    diff mode: Changed text within a changed line

Questi sono in genere definiti da una combinazione di colori , ma puoi personalizzarli nel tuo ~/.vimrc(dopo il :colorschemecomando) se ti piace la combinazione generale, ma non la sua evidenziazione diff. Basta ridefinire usando :highlight. Ecco le mie personalizzazioni personali (per GVIM; per il terminale sono necessari ctermfg/bg=...invece gli attributi appropriati / in aggiunta):

hi DiffAdd      gui=none    guifg=NONE          guibg=#bada9f
hi DiffChange   gui=none    guifg=NONE          guibg=#e5d5ac
hi DiffDelete   gui=bold    guifg=#ff8080       guibg=#ffb0b0
hi DiffText     gui=none    guifg=NONE          guibg=#8cbee2

Se stai cambiando i colori al volo, devi richiamare nuovamente quei :hicomandi tramite:autocmd ColorScheme * hi ...


11

Una soluzione rapida è disabilitare l'evidenziazione della sintassi. A volte l'evidenziazione della sintassi del codice farà sì che il testo in primo piano abbia lo stesso colore del colore di sfondo di vimdiff, rendendo il testo "invisibile".

:syntax off

Se vuoi farlo automaticamente per vimdiff, aggiungi questo alla fine del tuo ~/.vimrc:

if &diff
    syntax off
endif
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.