Saya ingin memiliki tampilan yang bagus dan manis dari ruang putih di terminal vim saya. Ini memungkinkan saya untuk menghapusnya sebelum menutup file.
Saya sadar bahwa pertanyaan ini cukup populer dan saya sudah menemukan lusinan jawaban di SO. Sayangnya saya belum menemukan yang memuaskan ...
Jadi saya akan mencoba merangkum informasi yang dikumpulkan dan solusi yang saya temukan.
Solusi 1: Sorot ruang trailing secara manual
highlight ExtraWhitespace ctermbg=red guibg=red
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
Pro:
- Mudah digunakan
- Cepat
- Cocok dengan
cursorline
Cons:
- Warna yang dipilih tidak kompatibel dengan skema warna lain karena warna diatur secara manual
red
- Blok latar belakang merah besar tidak terlalu estetika
Solusi 2: Menggunakan fitur daftar
set list
set listchars+=trail:◦
Pro:
- Mudah digunakan
- Cepat
Cons:
- Masalah jika
:set cursorline
diaktifkan - Warna khusus untuk
list/trail
tidak dapat dikonfigurasi. Harus sama dengan listchars lainnya
Solusi 3: Menggunakan fitur penyembunyian
syn match WhiteSpace "\s\+$" containedin=ALL conceal cchar=◦
set conceallevel=2
set concealcursor=nv
highlight Conceal ctermfg=red
Pro:
- Lebih cantik dari solusi pertama
Cons:
- Latar belakang tidak sama dengan latar belakang kursor
- Dapat mengganggu aturan penyembunyian lainnya
- Warna yang dipilih tidak selalu kompatibel dengan skema warna
- Tidak kompatibel dengan Vim versi lama
Pertanyaan saya
Salah satu solusi yang disebutkan adalah yang paling cocok dalam hal kinerja dan kompatibilitas dan bagaimana saya bisa mendapatkan semua pro dan tidak ada yang kontra?
Dengan kata lain, saya ingin mencari solusi di mana:
- Warna garis belakang sorot sesuai dengan skema warna yang dipilih
- Warna ini terlihat jelas tetapi tidak terlalu agresif untuk mata
- Kompatibel dengan
cursorline
(latar belakang dan latar depan) `- Kompatibel dengan plugin lain yang mungkin menggunakan menyembunyikan
- Trailing char dapat disetel ke char Unicode apa saja
:hi link ExtraWhitespace CursorLine
,. Lihat:help hi-link
.