Dapatkan nilai pengaturan saat ini di Vim

274

Apakah ada cara sederhana untuk mengetahui nilai saat ini dari pengaturan Vim yang ditentukan? Jika saya ingin mengetahui nilai saat ini, katakanlah tabstop, saya dapat menjalankan:

:set tabstop

tanpa melewati argumen, dan Vim akan memberi tahu saya nilai saat ini. Ini bagus untuk banyak pengaturan, tetapi tidak baik bagi mereka yang benar atau salah. Misalnya, jika saya ingin mengetahui nilai saat ini expandtab, menjalankan:

:set expandtab

akan benar-benar diaktifkan expandtab. Saya hanya ingin mencari tahu apakah itu diaktifkan atau tidak.

Jenis ini melakukan apa yang saya inginkan:

:echo &l:expandtab

tapi sepertinya cukup bertele-tele. Apakah ada cara yang lebih cepat?

nelstrom
sumber

Jawaban:

378

Tambah sebuah ? tandai setelah nama pengaturan dan itu akan menunjukkan nilai

:set expandtab?
JaredPar
sumber
15
Perhatikan bahwa set <...>?sintaks akan bekerja untuk "pengaturan" yang merupakan opsi , tetapi tidak untuk "pengaturan" yang merupakan variabel . Jadi misalnya, untuk mengetahui apa mode penyorotan sintaks saat ini (dikodekan dalam variabel, bukan opsi), Anda perlu melakukannya echo b:current_syntax.
Maxy-B
16
Jika Anda juga ingin melihat dari mana pilihan itu ditetapkan, gunakan verbose. Untuk contoh ini :verbose set expandtab,.
mkobit
1
Bagaimana cara melihat nilai pengaturan saat ini seperti behave? Saya sudah mencoba behave?dan set behave?. Sayangnya, mereka tidak berfungsi.
jdhao
38

Atau, &simbol dapat digunakan untuk berarti "opsi" - mis

let x = &expandtab
echo &expandtab
cdyson37
sumber
Apakah ada opsi untuk mendapatkan nilai elemen daftar? (mis. ruang listchars)
816-8055
Saya percaya listchars adalah string biasa, bukan List, meskipun saya kira Anda bisa melakukan sesuatu sepertisplit(&listchars, ',')
cdyson37
9

Jika Anda tidak ingat porperty apa yang ingin Anda periksa,

Anda dapat memeriksa semua pengaturan dengan menggunakan

:set all

dan semua pengaturan akan dicantumkan.

徐新晨
sumber
4

Ada juga pengaturan vim tambahan yang dapat ditampilkan juga, seperti:

:highlight

Untuk daftar lengkap, lihat: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

Sunting: Ada beberapa kesalahpahaman atas jawaban saya. Ini tidak berfungsi untuk perintah apa pun. Tapi itu berfungsi untuk semua perintah yang tercantum dalam URL di atas.

wisbucky
sumber
Ini tidak bekerja. Saya ingin memeriksa apakah autowritesudah aktif. :set autowrite?melakukan pekerjaan.
Atcold
@Atcold: ini berfungsi untuk beberapa pengaturan, yang hanya jenis kueri ini yang akan berfungsi.
gmarmstrong
@ gmarmstrong: Saya melihat jawabannya telah diedit dengan komentar seperti itu.
Atcold