Saya mencari solusi yang mungkin untuk menerapkan dua warna latar belakang yang berbeda di dalam buffer vim tunggal tergantung pada konteks seperti pada contoh teks luhur ini .
Salah satu contoh penggunaannya adalah untuk memberi warna cuplikan kode di dalam file markup secara berbeda sehingga lebih menonjol.
Namun saya belum pernah melihat contoh dengan setup seperti itu.
Apakah ini mungkin dalam vim?
colorscheme
Karolis Koncevičius
sumber
sumber
Jawaban:
Karena saya ingin tahu seberapa bagus ini akan bekerja, saya telah meretas sesuatu bersama-sama seperti itu.
Seperti disebutkan dalam komentar pada jawaban sebelumnya, satu-satunya cara untuk melakukan ini adalah mengisi daerah dengan ruang; itulah tepatnya yang kami lakukan; sebelum menulis, kami menghapus spasi ini, jadi Anda seharusnya tidak mengganggu orang lain dengan itu.
Perhatikan bahwa contoh ini sangat spesifik untuk tipe file penurunan harga!
Efek samping :
'list'
diaktifkanPertama, Anda perlu menambahkan ini ke
~/.vim/after/syntax/markdown.vim
:Anda dapat menyesuaikan warna sesuai keinginan Anda, tentu saja ;-)
Kemudian, tambahkan ini ke vimrc Anda:
Saya tidak akan menjelaskan kode baris-demi-baris, komentar harus membuat intisari umum menjadi jelas ;-)
sumber
Tentunya dimungkinkan untuk menggunakan warna latar yang berbeda untuk elemen yang disorot sintaksis. Cukup tentukan
guibg
danctermbg
warna dalamhilight
perintah Anda . Yang pertama mengatur warna latar belakang untuk GUI Vim, dan yang terakhir untuk terminal Vim.Namun, ini memiliki batasan penting yang hanya dapat mengatur warna latar belakang untuk karakter yang sebenarnya ada dalam file.
Hasil dari ini adalah bahwa warna latar tidak dapat melampaui melewati akhir teks pada garis ke tepi jendela, sehingga pewarnaan dari blok kode yang ditunjukkan dalam contoh Anda tidak mungkin:
Anda juga dapat mengubah warna latar belakang seluruh garis menggunakan fitur Masuk. (Lihat
linehl
di:help sign.txt
)Namun, perhatikan bahwa:
Melakukan hal itu memerlukan kode penulisan untuk menempatkan tanda pada setiap baris yang perlu diwarnai dan tetap memperbaruinya seiring dengan perubahan isi file,
Secara default, saat menempatkan tanda, kolom tanda akan ditampilkan di sebelah kiri jendela. Dimungkinkan untuk mengubah pewarnaan kolom tanda dengan
SignColumn
grup sorotan, dan dalam versi Vim yang lebih baru dapat dihapus seluruhnya. (Lihat:help 'signcolumn'
.)Misalnya, untuk mengadaptasi solusi Carpetsmoker untuk menggunakan mekanisme tanda (lebih kuat), Anda dapat melakukan hal berikut:
Ini agak menyederhanakan kode, dan memiliki lebih sedikit peringatan daripada versi Carpetsmoker.
@ChristianBrabandt 's DynamicSigns Plugin membuat menggunakan fitur Masuk untuk tujuan ini lebih mudah: ia menjelaskan bagaimana menggunakannya untuk melakukannya dalam jawaban ini .
sumber
guibg
hanya berfungsi untuk gvim, benarkah itu?ctermbg
, seperti yang dinyatakan.