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?

Jawaban:


378

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

:set expandtab?

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

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.


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.