Jak dostosować kolory vimdiff?

22

Próbuję użyć vimdiff jako narzędzia scalania git, ale użyte kolory sprawiają, że jest nie do zniesienia (przynajmniej w Windows / Mingw): kolor tła i kolor pierwszego planu są takie same dla niektórych sprzecznych linii, co czyni je niepotrzebnie trudnymi aby dowiedzieć się, co się dzieje (patrz poniższe wiersze zawierające include=).

przykład

oligofren
źródło

Odpowiedzi:

13

Kolory są kontrolowane przez te cztery grupy wyróżnień ( :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

Są one zazwyczaj definiowane za pomocą schematu kolorów , ale możesz je dostosować w swoim ~/.vimrc(po :colorschemepoleceniu), jeśli podoba ci się ogólny schemat, po prostu nie wyróżniaj różnic. Po prostu przedefiniuj za pomocą :highlight. Oto moje osobiste dostosowania (dla GVIM; dla terminalu potrzebujesz odpowiednich ctermfg/bg=...atrybutów zamiast / dodatkowo):

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

Jeśli zmieniasz kolory w locie, musisz ponownie wywołać te :hipolecenia za pomocą:autocmd ColorScheme * hi ...

Ingo Karkat
źródło
11

Jednym szybkim rozwiązaniem jest wyłączenie podświetlania składni. Czasami podświetlanie składni kodu powoduje, że tekst na pierwszym planie ma ten sam kolor co kolor tła vimdiff, przez co tekst jest „niewidoczny”.

:syntax off

Jeśli chcesz to zrobić automatycznie dla vimdiff, dodaj to na końcu ~/.vimrc:

if &diff
    syntax off
endif
wisbucky
źródło