Wie kann ich vimdiff-Farben anpassen?

22

Ich versuche, vimdiff als Tool zum Zusammenführen von Git zu verwenden, aber die verwendeten Farben machen es unerträglich (zumindest unter Windows / Mingw): Die Hintergrundfarbe und die Vordergrundfarbe sind für einige der widersprüchlichen Linien gleich, was es unnötig schwierig macht um herauszufinden, was los ist (siehe die Zeilen unten mit include=).

Beispiel

Oligofren
quelle

Antworten:

13

Die Farben werden von diesen vier Hervorhebungsgruppen ( :help hl-DiffAdd) gesteuert :

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

Diese werden normalerweise durch ein Farbschema definiert , aber Sie können sie in Ihrem ~/.vimrc(nach dem :colorschemeBefehl) anpassen, wenn Sie das Schema insgesamt mögen, nur nicht die Diff-Hervorhebung. Einfach neu definieren mit :highlight. Hier sind meine persönlichen Anpassungen (für GVIM; für das Terminal benötigen Sie ctermfg/bg=...stattdessen / zusätzlich die entsprechenden Attribute):

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

Wenn Sie Farbschemata im laufenden Betrieb wechseln, müssen Sie diese :hiBefehle über erneut aufrufen:autocmd ColorScheme * hi ...

Ingo Karkat
quelle
11

Eine schnelle Lösung besteht darin, die Syntaxhervorhebung zu deaktivieren. Manchmal hat die Hervorhebung der Codesyntax zur Folge, dass der Vordergrundtext dieselbe Farbe wie der vimdiff-Hintergrund hat, wodurch der Text "unsichtbar" wird.

:syntax off

Wenn Sie dies für vimdiff automatisch tun möchten, fügen Sie dies an das Ende Ihres ~/.vimrc:

if &diff
    syntax off
endif
weises Glück
quelle