ฉันมีคำถามเกี่ยวกับ Emacs Lisp setqและsetq-defaultต่างกันอย่างไร
บทช่วยสอนบอกว่าsetqมีผลในบัฟเฟอร์ในเครื่องในขณะที่setq-defaultมีผลกับบัฟเฟอร์ทั้งหมด
ตัวอย่างเช่นถ้าผมเขียน(setq A-var A-vars ค่า)ในinit.elผมพบว่าหลังจากที่เริ่มต้น Emacs และการเปิดกันชนใหม่ที่มี varยังมีและค่าที่เป็นความ vars มูลค่า ฉันคิดว่ามันไม่ควรจะอยู่ที่นั่น ดูเหมือนจะมีความแตกต่างระหว่างไม่มีsetqและsetq เริ่มต้น
มีอะไรผิดปกติกับความเข้าใจของฉัน?
ตัวอย่างเช่น:
ฉันเขียน(setq hello 123)ในไฟล์init.elและเรียกใช้emacs abufferในเชลล์จากนั้นฉันป้อน"hello Cx Ce"มันจะแสดง "123" สิ่งเดียวกันนี้เกิดขึ้นเมื่อฉันเรียกใช้สิ่งนี้ในบัฟเฟอร์ใหม่ทั้งหมด
ฉันเขียน(setq tab-width 4)ในไฟล์init.el เมื่อฉันเรียกใช้Cx Ce ที่มีความกว้างแท็บจะแสดง "8" (โหมดปัจจุบันคือ 'ข้อความ') อย่างไรก็ตามเมื่อฉันใช้(setq-default tab-width 4)มันจะแสดง "4" ฉันไม่สามารถอธิบายปรากฏการณ์นี้ได้