Bagaimana cara mengatur warna latar belakang untuk jendela aktif Vim saja?

16

Fitur kecil namun menyenangkan secara visual, dan sedikit menambah kegunaan, saya ingin Vim menggunakan warna latar yang berbeda untuk jendela aktif.

Berikut ini sketsa dari apa yang saya kejar:

masukkan deskripsi gambar di sini

Biasanya vim itu akan memiliki semua latar belakang hitam, tetapi jika hanya jendela yang aktif memiliki warna sendiri untuk menyoroti perhatian pengguna. Menyoroti bilah status saja tidak cukup!

unperson325680
sumber

Jawaban:

8

Heptite, terima kasih atas idenya.

Saya baru saja mengganti WinEnter dan WinLeave autocmd untuk menambah / menghapus nomor baris di depan setiap baris:

augroup BgHighlight
    autocmd!
    autocmd WinEnter * set number
    autocmd WinLeave * set nonumber
augroup END

Sekarang lebih gaya untuk melacak jendela mana yang aktif.

t0d0r
sumber
Ini keren. Sayang sekali saya tidak suka nomor baris sehingga terlalu tidak estetika.
unperson325680
3

Grup sorotan yang mengontrol warna latar belakang default adalah " Normal" dan " NonText". Sayangnya ini adalah sorotan "global" dan tidak dapat "dilokalkan" berdasarkan per-jendela.

Namun, berikut ini adalah contoh kludgy yang benar-benar jelek:

augroup Bg Sorot
    autocmd!
    sorot ActiveWindow guibg = lightblue
    autocmd WinEnter * panggilan matchadd ('ActiveWindow', '. *', 10, 1682)
    autocmd WinLeave * panggil matchdelete (1682)
augroup END

doautocmd BgHighlight WinEnter -

Karena ini hanyalah contoh, Anda harus memodifikasi ini agar sesuai dengan kebutuhan pribadi Anda, seperti menambahkan ctermbg = ... sorot bersama dengan guibg = ...

Kekurangannya adalah ini hanya akan menyoroti latar belakang teks yang ada dalam file, bukan seluruh baris / jendela. (Seperti yang saya katakan, jelek dan kludgy.)

Heptite
sumber
Pemikiran yang bagus, tetapi polanya .*hanya cocok dengan teks file; tidak ada dari sisa latar belakang. Selain itu, saya hanya membuatnya bekerja di terminal dengan ctermbgproperti. Aneh ...
unperson325680
Maaf, jawaban saya seharusnya lebih jelas. Saya sudah mengeditnya.
Heptite