Vim'de bir ayarın geçerli değerini alma


274

Belirli bir Vim ayarının geçerli değerini bulmanın basit bir yolu var mı? Ben şu anki değerini bilmek istiyorum, örneğin tabstop, ben çalıştırabilirsiniz:

:set tabstop

ve bir tartışma geçmeden Vim bana şu anki değeri söyleyecek. Bu, birçok ayar için iyidir, ancak doğru veya yanlış olanlar için iyi değildir. Örneğin, geçerli değerini bulmak istiyorsanız expandtab, çalışan:

:set expandtab

aslında etkinleştirir expandtab. Sadece etkin olup olmadığını öğrenmek istiyorum.

Bu tür ne istediğimi yapar:

:echo &l:expandtab

ama oldukça ayrıntılı görünüyor. Daha hızlı bir yol var mı?

Yanıtlar:


378

Ekle ? ayar adından sonra işaretleyin ve değeri gösterecektir

:set expandtab?

15
set <...>?Sözdiziminin seçenek olan "ayarlar" için çalışacağını , ancak değişken olan "ayarlar" için çalışmadığını unutmayın . Örneğin, geçerli sözdizimi vurgulama modunun ne olduğunu bulmak için (bir seçenek olarak değil, bir değişkenle kodlanmış) yapmanız gerekir echo b:current_syntax.
Maxy-B

16
Seçeneğin nereden ayarlandığını da görmek istiyorsanız , düğmesini kullanın verbose. Bu örnek için :verbose set expandtab,.
mkobit

1
Gibi ayarların mevcut değerini nasıl görürsünüz behave? Denedim behave?ve set behave?. Ne yazık ki, çalışmıyorlar.
jdhao

38

Alternatif olarak, &sembol "seçenek" anlamında kullanılabilir - ör.

let x = &expandtab
echo &expandtab

Liste öğesinin değerini alma seçeneği de var mı? (ör. listchars alanı)
816-8055

Listchars sıradan bir dize olduğuna inanıyorum, bir Liste değil, sanırım böyle bir şey yapabilirsinsplit(&listchars, ',')
cdyson37

9

Hangi porperty'i kontrol etmek istediğinizi hatırlamıyorsanız,

kullanarak tüm ayarları kontrol edebilirsiniz

:set all

ve tüm ayarlar listelenir.


4

Ayrıca görüntülenebilecek ek vim ayarları da vardır, örneğin:

:highlight

Tam liste için bkz. Http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Düzenleme: Cevabımın bazı yanlış anlaşılmaları var. Bu herhangi bir komut için çalışmaz. Ancak yukarıdaki URL'de listelenen tüm komutlar için çalışır.


Bu çalışmıyor. Açık olup olmadığını kontrol etmek istedim autowrite. :set autowrite?işi yapar.
Atcold

@Atcold: Bu, yalnızca bu tür bir sorgunun çalışacağı bazı ayarlar için çalışır.
gmarmstrong

@gmarmstrong: Cevabın böyle bir açıklama ile düzenlendiğini görüyorum.
Atcold
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.