Bagaimana mengetahui skema warna mana yang saat ini digunakan sesi Vim

107

Anda dapat mengatur skema warna Vim dengan menerbitkan

:colorscheme SCHEME_NAME

tetapi, anehnya, Anda tidak bisa mendapatkan skema yang saat ini digunakan dengan menerbitkan

:colorscheme

karena ini menghasilkan " E471: Argument required". Saya juga tidak melihat skema warna yang tercantum dalam keluaran :set.

Jadi, bagaimana Anda mencari tahu skema warna saat ini yang digunakan (selain mengganti tema secara manual sampai Anda mengenalinya)?

Gotgenes
sumber

Jawaban:

159

Tidak ada cara yang dijamin (karena skema warna pada dasarnya adalah beban perintah vim yang bersumber). Namun, dengan konvensi harus ada variabel g:colors_nameyang disetel ke nama skema warna.

Karena itu, coba ini:

echo g:colors_name

Jika Anda mendapatkan E121, itu adalah skema warna yang dibuat dengan buruk atau yang default.

Cara yang lebih cemerlang untuk melakukan ini adalah (untuk versi terbaru vim):

function! ShowColourSchemeName()
    try
        echo g:colors_name
    catch /^Vim:E121/
        echo "default
    endtry
endfunction

Kemudian lakukan:

:call ShowColourSchemeName()

Jika tertulis "default", lakukan :colorscheme defaultdan lihat apakah warnanya berubah. Jika ya, Anda menggunakan skema warna yang rusak dan tidak banyak yang dapat Anda lakukan selain mengganti tema secara manual sampai Anda mengenalinya.

Variabel g:colors_nametersebut didokumentasikan di sini :

:help colorscheme
DrAl
sumber
Apakah kutipan ganda penutup setelah "defaulthilang?
Benjamin W.
38

Pilihan terbaik adalah menggunakan :coloatau :colorschemedalam vim saat ini dan teks skema warna aktual ditampilkan. Silahkan lihat,

:help colorscheme 

untuk lebih jelasnya.

Gattoo
sumber
3
Itu tidak berhasil bagi saya. Ia mengatakan default. Dan skema warna yang saya dapatkan ketika saya menjalankannya :colo defaultadalah yang lain.
daVe
4

Versi satu baris dari jawaban DrAl:

let current_scheme = get(g:, 'colors_name', 'default')

The get()fungsi akan jatuh kembali ke 'default'jika variabel belum ditetapkan.

joeytwiddle
sumber