รับค่าปัจจุบันของการตั้งค่าในกลุ่ม


274

มีวิธีง่ายๆในการหาค่าปัจจุบันของการตั้งค่า Vim ที่ระบุหรือไม่? หากฉันต้องการทราบมูลค่าปัจจุบันของพูดว่าtabstopฉันสามารถเรียกใช้:

:set tabstop

โดยไม่ต้องผ่านการโต้แย้งและเป็นกลุ่มจะบอกฉันมูลค่าปัจจุบัน นี่เป็นเรื่องปกติสำหรับการตั้งค่าหลายอย่าง แต่ไม่ดีสำหรับผู้ที่เป็นจริงหรือเท็จ ตัวอย่างเช่นถ้าฉันต้องการหามูลค่าปัจจุบันของexpandtabวิ่ง:

:set expandtab

expandtabจริงจะช่วยให้ ฉันแค่อยากรู้ว่ามันเปิดใช้งานหรือไม่

ประเภทนี้ทำในสิ่งที่ฉันต้องการ:

:echo &l:expandtab

แต่ดูเหมือนว่าค่อนข้างละเอียด มีวิธีที่เร็วกว่านี้ไหม

คำตอบ:


378

เพิ่ม ? ทำเครื่องหมายหลังจากชื่อการตั้งค่าและมันจะแสดงค่า

:set expandtab?

15
โปรดทราบว่าset <...>?ไวยากรณ์จะทำงานให้ "การตั้งค่า" ที่มีตัวเลือกแต่ไม่ได้สำหรับ "การตั้งค่า" ที่มีตัวแปร ดังนั้นสำหรับตัวอย่างเช่นในการหาสิ่งที่โหมดการเน้นไวยากรณ์ปัจจุบันถูก (เข้ารหัสในตัวแปรไม่ได้ตัวเลือก) echo b:current_syntaxที่คุณต้องทำ
Maxy-B

16
หากคุณต้องการดูว่าตัวเลือกนั้นถูกตั้งไว้ที่ใดให้ใช้verboseเช่นกัน สำหรับตัวอย่าง:verbose set expandtabนี้
mkobit

1
จะเห็นค่าปัจจุบันของการตั้งค่าเช่นbehave? ฉันได้พยายามและbehave? set behave?น่าเสียดายที่มันไม่ทำงาน
jdhao

38

หรือ&สามารถใช้สัญลักษณ์นี้เพื่อหมายถึง "ตัวเลือก" - เช่น

let x = &expandtab
echo &expandtab

มีตัวเลือกในการรับค่าขององค์ประกอบรายการหรือไม่ (เช่นพื้นที่ของ listchars)
816-8055

ฉันเชื่อว่า listchars เป็นสตริงธรรมดาไม่ใช่ List แต่ฉันคิดว่าคุณสามารถทำสิ่งที่ต้องการได้split(&listchars, ',')
cdyson37

9

หากคุณจำไม่ได้ว่าคุณต้องการตรวจสอบทรัพย์สินประเภทใด

คุณสามารถตรวจสอบการตั้งค่าทั้งหมดโดยใช้

:set all

และการตั้งค่าทั้งหมดจะแสดงรายการ


4

นอกจากนี้ยังมีการตั้งค่าเสียงเรียกเข้าเพิ่มเติมที่สามารถแสดงผลได้เช่น:

:highlight

สำหรับรายการทั้งหมดดู: http://vim.wikia.com/wiki/Displaying_the_current_Vim_environment

แก้ไข: มีคำตอบของฉันที่เข้าใจผิด สิ่งนี้ไม่ทำงานสำหรับคำสั่งใด ๆ แต่มันจะทำงานสำหรับคำสั่งทั้งหมดที่ระบุไว้ใน URL ข้างต้น


สิ่งนี้ใช้ไม่ได้ ฉันต้องการตรวจสอบว่าเปิดautowriteอยู่หรือไม่ :set autowrite?ทำงาน
Atcold

@Atcold: ใช้งานได้กับการตั้งค่าบางอย่างซึ่งการสืบค้นประเภทนี้จะใช้ได้เฉพาะ
gmarmstrong

@ gmarmstrong: ฉันเห็นคำตอบที่ได้รับการแก้ไขด้วยคำพูดดังกล่าว
Atcold
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.