Bir Vim oturumunun şu anda hangi renk şemasını kullandığını nasıl anlarsınız?


107

Şunları yapabilirsiniz set düzenlenmek suretiyle Vim renk düzeni

:colorscheme SCHEME_NAME

ancak, garip bir şekilde, şu anda kullanılan şemayı yayınlayarak elde edemezsiniz

:colorscheme

çünkü bu " E471: Argument required" ile sonuçlanır . Ayrıca çıktısında listelenen renk şemasını da görmüyorum :set.

Öyleyse, kullanımda olan mevcut renk şemasını nasıl bulursunuz (temaları tanıyana kadar el ile değiştirmek dışında)?

Yanıtlar:


159

Garantili bir yol yoktur (çünkü renk şeması esasen kaynaklı bir vim komutu yüküdür). Bununla birlikte, geleneksel olarak g:colors_namerenk şemasının adına ayarlanmış bir değişken olmalıdır .

Bu nedenle şunu deneyin:

echo g:colors_name

E121'i alırsanız, bu ya kötü yapılmış bir renk şemasıdır ya da varsayılandır.

Bunu yapmanın daha parlak bir yolu (vim'in son sürümleri için):

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

O zaman yap:

:call ShowColourSchemeName()

"Varsayılan" yazıyorsa, yapın :colorscheme defaultve renklerin değişip değişmediğine bakın. Kullanırlarsa, hatalı biçimlendirilmiş bir renk şeması kullanıyorsunuzdur ve tanıyana kadar temaları elle değiştirmek dışında yapabileceğiniz pek bir şey yoktur.

Değişken buradag:colors_name belgelenmiştir :

:help colorscheme

"defaultKaybolduktan sonra kapanış çift tırnak mı?
Benjamin W.

38

En iyi seçenek mevcut vim'de :coloveya kullanmaktır :colorschemeve gerçek renk şeması metni gösterilir. Bakınız,

:help colorscheme 

daha fazla ayrıntı için.


3
Benim için çalışmıyor. Diyor default. Ve çalıştırdığım zaman aldığım renk şeması :colo defaultbaşka bir şey.
gün

4

DrAl'in cevabının tek satırlık bir versiyonu:

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

get()Fonksiyon geri düşecek 'default'değişkeni henüz belirlenmedi ise.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.