¿Cómo personalizo los colores de vimdiff?

22

Estoy tratando de usar vimdiff como mi herramienta de combinación git, pero los colores utilizados lo hacen insoportable (al menos en Windows / Mingw): el color de fondo y el color de primer plano son los mismos para algunas de las líneas en conflicto, lo que lo hace innecesariamente difícil para averiguar qué está pasando (vea las líneas que contienen a continuación include=).

ejemplo

oligofren
fuente

Respuestas:

13

Los colores están controlados por estos cuatro grupos de resaltado ( :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

Por lo general, estos se definen mediante un esquema de color , pero puede personalizarlos en su ~/.vimrc(después del :colorschemecomando) si lo desea en general, pero no su resaltado de diferencias. Solo redefinir usando :highlight. Aquí están mis personalizaciones personales (para GVIM; para el terminal necesita los ctermfg/bg=...atributos apropiados en su lugar / además):

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

Si está cambiando los esquemas de colores sobre la marcha, debe volver a invocar esos :hicomandos a través de:autocmd ColorScheme * hi ...

Ingo Karkat
fuente
11

Una solución rápida es deshabilitar el resaltado de sintaxis. A veces, el resaltado de la sintaxis del código hará que el texto de primer plano sea del mismo color que el color de fondo de vimdiff, haciendo que el texto sea "invisible".

:syntax off

Si desea hacer esto automáticamente para vimdiff, agréguelo al final de su ~/.vimrc:

if &diff
    syntax off
endif
Wisbucky
fuente