Saya menggunakan tiling window manager (luar biasa) + terminal multiplexer (tmux) + membelah bagian dalam vim. Saya tidak memiliki dekorasi jendela sama sekali, sehingga Anda tidak ada pemisahan visual di antara mereka sama sekali jika konten program tidak memberikannya. Saya cukup nyaman dengan paradigma ini karena saya menggunakan banyak monitor dan tugas kelompok berdasarkan layar. Jika dua jendela tidak memiliki alasan untuk berdampingan, mereka tidak akan ada di sana.
Namun ini menciptakan sedikit disonansi visual di mana pemisahan yang paling jelas secara visual adalah yang paling tidak signifikan secara semantik.
- Xorg window ‹|› window = nothing at all
- Panel Tmux ‹|› panel = 1px garis pembagi
- Vim split ‹|› split = 1 karakter kolom berwarna lebar
Berikut adalah contoh yang menunjukkan satu setiap jendela berdampingan, panel dan pemisahan vim:
Bahkan tanpa mengklik ke versi resolusi penuh, garis pembagi putih yang Anda lihat adalah perpecahan paling signifikan di layar, panel vim. (Perhatikan kolom abu-abu di sebelah kanan sesi vim sebenarnya merupakan highlight kolom ke-80, bukan pembagi apa pun meskipun saya sering bekerja pada ukuran itu.)
Saya menyadari bagaimana mengubah karakter yang diambil di split atau mengurangi kontras skema warna. Apa yang ingin saya lakukan adalah menggunakan split bar yang sama dengan tmux yang tidak mengambil lebar karena digambar di antara kolom daripada di satu. Apakah ini mungkin dengan vim berbasis terminal? Gvim? Neovim? Baring membuat pemisah yang tidak mencolok secara visual, dapatkah kolom pembagi dimatikan seluruhnya?
PS Alasan menggunakan pemisah yang serupa secara visual masuk akal adalah karena saya menggunakan binding kunci yang sama untuk menavigasi antara panel tmux dan vim splits. Tombol yang sama menavigasi dengan mulus di antara mereka, itu hanya akan masuk akal jika batas visualnya sama.
hi VertSplit cterm=NONE
karena itureverse
sebagai default.Bahkan di screen-shot saya sendiri, tmux tidak menggunakan sihir apa pun, pemisahan masih berupa kolom lebar karakter tunggal. Efek visual yang kurang mencolok adalah penggunaan karakter menggambar kotak Unicode yang kurang kikuk daripada standar ASCII vim, dan kurangnya warna latar belakang yang disorot.
Efek yang hampir sama sangat mungkin di vim dengan menambahkan sesuatu seperti baris berikut ke file rc:
Penggunaan
autocmd
jaminan bahwa highlight over-ride tetap berlaku jika Anda mengganti skema warna. Anda mungkin atau mungkin tidak menginginkan perilaku ini karena beberapa skema warna memiliki nilai yang masuk akal untuk grup warna ini.Perhatikan juga bahwa
cterm=NONE
perlu untuk menumpang beberapa skema warna yang mengatur nilai inireverse
, ergo mengutak-atik nilai fg / bg apa pun yang Anda coba gunakan.sumber
Tidak, ini tidak dapat dilakukan di Vim, dan mungkin akan sangat sulit untuk diterapkan di GVIM.
Vim menempel pada pengalamatan berbasis sel yang digunakan di terminal; dalam buffer, ini sangat penting untuk navigasi vertikal yang konsisten dengan
j
/k
. Mengatasi koordinat x dan y berbasis sel ini sudah mendarah daging dalam implementasi Vim, saya kira ini sangat sulit untuk diatasi.Perhatikan juga
:help design-not
:sumber