Bagaimana saya bisa membuat skema warna saya sendiri?

16

File apa yang perlu saya buat? Apa yang seharusnya ada di dalam file-file ini? Apakah ada file colorscheme default di suatu tempat yang dapat saya gunakan dan ubah nilai warna?

dkns
sumber

Jawaban:

15

Lokasi Colorscheme

Pertama, Vim mencari di direktori runtime untuk colorsdirektori. Di sinilah semua tema warna harus disimpan ( :help 'runtimepath')

Ini berarti Anda akan memerlukan satu file yang hidup di ~/.vim/colorsfolder. Tema warna default terletak di $VIMRUNTIME/colors, di mana $VIMRUNTIMEbiasanya /usr/share/vim/vim74atau /usr/local/share/vim/vim74direktori, tergantung pada bagaimana Vim diinstal (gantikan vim74 untuk vim73 untuk Vim versi 7.3)

Sekarang untuk mendapatkan bagian yang menyenangkan.

Membuat skema warna

Untuk memulai dengan membuat skema warna Anda sendiri, saya sangat menyarankan untuk melihat skema warna default dan bereksperimen dengan memodifikasi mereka.

Jadi salin colorcheme default dari $VIMRUNTIME/colorsfolder ke ~/.vim/colorsfolder Anda . Beri nama itu sesuatu yang membedakan dirinya dari nama colorcheme default. Jadi jika Anda menyalin desertskema warna yang datang dengan Vim secara default, beri nama file tersebut sebagai default_mod.vimatau sesuatu dengan efek itu. Buka file colorscheme dan ubah let g:colors_nameuntuk juga membedakan dirinya dari file colorscheme default. Secara konvensi, ini harus sama dengan nama file colorscheme.

Dalam colorscheme, yang harus Anda lakukan adalah memberikan warna untuk ctermbg, ctermfg, guibg, guifg(untuk latar belakang terminal, foreground terminal, latar belakang gui, foreground warna gui masing-masing) untuk berbeda dibangun dalam kelompok sorot. Untuk memeriksa daftar grup sorotan yang dapat Anda modifikasi, periksa :help highlight-default. Secara opsional, Anda juga dapat menggunakan atribut ctermdan guiuntuk menentukan bahwa Anda ingin grup highlight dicetak tebal atau miring.

Misalnya, ini akan menetapkan warna hijau untuk sebuah String:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

Anda juga dapat menggunakan tautan sorotan untuk menautkan grup sorotan ke grup lain. Ini berguna jika Anda ingin dua grup highlight memiliki warna yang sama.

Misalnya, Anda bisa menautkan diffAddedgrup highlight ke grup highlight String yang didefinisikan di atas:

highlight link diffAdded String

Akshay
sumber
Jika saya hanya menyalin salah satu file colorscheme.vim dan kemudian meletakkannya di folder terpisah apakah saya dapat menggunakannya kembali di komputer saya yang lain? Misal jika saya meletakkannya di repo di github, apakah saya bisa mengkloningnya atau mengaktifkannya di salah satu manajer plugin?
dkns
@dkns, Yap, tepatnya. Misalnya, Anda dapat memberi nama colorscheme Anda sebagai "dkns_colorscheme.vim", letakkan di direktori colors / dan kemudian dorong ke Github. Jika Anda memiliki pengelola plugin yang diinstal, kloning repo ini akan membuat skema warna tersedia untuk Vim.
akshay
Pertanyaan lain. Tidak yakin apakah saya harus memposting di sini sebagai komentar atau mengajukan pertanyaan umum lainnya. Bagaimana saya bisa menemukan nilai warna untuk cterm? Saya ingin memiliki tema ini terlihat sama pada gui dan terminal tapi saya tidak tahu bagaimana cara mengkonversi nilai hex ke nilai cterm.
dkns
1
@dkns Karena warna terminal sangat tergantung pada palet warna yang digunakan dalam emulator terminal, ini cukup sulit dilakukan. Ketika saya membuat skema warna saya, saya merasa terbantu untuk menampilkan seperti apa masing-masing 256 warna itu. Saya menggunakan skrip kecil ini di folder bin saya. Anda bisa menggunakan color picker untuk kemudian memilih warna untuk memastikan warna gui dan cterm yang sama. Saya akan beralih dari cterm-> gui dan bukan sebaliknya karena ada lebih banyak warna dalam gui vim. Semoga itu bisa membantu.
akshay
7

Periksa situs seperti menghidupkan dan Villustrator . Mereka pada dasarnya membiarkan Anda membuat atau men-tweak skema secara grafis dan kemudian mengunduh file yang diperlukan.

Collin Peters
sumber
0

Ada beberapa alat untuk membuat ini otomatis:

  • vivify : cukup rumit, Anda harus memilih secara manual setiap warna untuk setiap grup sorotan tunggal.
  • vimcolors.org : sangat sederhana dan mudah. Cukup pilih beberapa warna dan secara otomatis akan menghasilkan skema untuk Anda.
pablopunk
sumber
0

Alat hebat lainnya adalah RNB oleh romainl yang menggunakan ERB . ERB (Embedded RuBy) adalah fitur Ruby yang memungkinkan Anda menghasilkan beberapa teks dari templat.

Jadi penggunaan alat ini sangat mudah: Pertama, Anda perlu mendefinisikan variabel yang berbeda sesuai dengan nomenklatur warna Anda dan tentu saja dengan konten yang sebenarnya (Bagaimana warna akan terlihat, kelompok mana yang ingin Anda gunakan, dll) itu cukup lurus ke depan karena penulis menulis banyak komentar untuk membantu Anda. Maka yang perlu Anda lakukan adalah memberikan template khusus untuk erb dan alat akan menghasilkan file yang tepat.

statox
sumber