Bagaimana cara mengubahsuaikan warna vimdiff?

22

Saya mencoba menggunakan vimdiff sebagai git merge tool saya, tetapi warna-warna yang digunakan membuatnya tidak tertahankan (setidaknya pada Windows / Mingw): warna latar dan warna latar depan sama untuk beberapa garis yang saling bertentangan, membuatnya menjadi sangat sulit untuk mencari tahu apa yang sedang terjadi (lihat baris di bawah ini yang mengandung include=).

contoh

oligofren
sumber

Jawaban:

13

Warna dikontrol oleh empat grup sorotan ini ( :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

Ini biasanya ditentukan oleh skema warna , tetapi Anda dapat menyesuaikannya di ~/.vimrc(setelah :colorschemeperintah) jika Anda suka keseluruhan skema Anda, hanya saja tidak berbeda dengan highlight. Tetapkan ulang menggunakan :highlight. Berikut ini adalah penyesuaian pribadi saya (untuk GVIM; untuk terminal Anda memerlukan ctermfg/bg=...atribut yang sesuai / sebagai tambahan):

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

Jika Anda mengganti tema warna dengan cepat, Anda harus memohon kembali :hiperintah - perintah tersebut melalui:autocmd ColorScheme * hi ...

Ingo Karkat
sumber
11

Salah satu perbaikan cepat adalah menonaktifkan penyorotan sintaksis. Kadang-kadang penyorotan sintaksis kode akan menyebabkan teks latar depan menjadi warna yang sama dengan warna latar belakang vimdiff, membuat teks "tidak terlihat".

:syntax off

Jika Anda ingin melakukan ini secara otomatis untuk vimdiff, tambahkan ini di akhir ~/.vimrc:

if &diff
    syntax off
endif
wisbucky
sumber