ฉันจะโหลดโหมดสำหรับส่วนขยายไฟล์ชุดใดชุดหนึ่งโดยอัตโนมัติได้อย่างไร


18

ฉันต้องการที่จะโหลดyaml-modeไฟล์ใด ๆ ที่ชื่อหรือ*.yml*.yaml


7
อ่านElisp คู่มือโหนดAuto Major Modeauto-mode-alistและคุณจะสามารถที่จะตอบคำถามของคุณเอง: โอ้ฉันเห็นว่าคุณทำอย่างนั้น 10 วินาทีหลังจากที่คุณโพสต์คำถาม อาจไม่ใช่ความคิดที่ดีที่จะปั๊ม Q & A จากคู่มือนี้ แต่ฉันเดาว่ามันเป็นคำถามที่จะเกิดขึ้นกับผู้คนและคำตอบจะช่วยพวกเขา น่าเสียดายที่พวกเขาจะเรียนรู้ด้วยวิธีนี้แทนที่จะเรียนรู้จาก Emacs เอง ดีกว่าที่จะสอนผู้คนถึงวิธีค้นหาคำตอบเช่นนั้น IMO
Drew

1
รู้สึกอิสระที่จะเพิ่มสิ่งนี้เป็นคำตอบ ฉันถามคำถามนี้เพราะเป็นคำถามที่ฉันแก้ไขในอดีตและคล้ายกับคำถามที่เสนอในรายการพื้นที่ 51
b4hand

1
ไม่มีปัญหา. ขออภัยถ้าฉันฟังเชิงลบ ดังที่ฉันพูดคำถามและคำตอบจะช่วยให้ผู้คน
Drew

สำหรับสิ่งที่คุ้มค่านี้จะคล้ายกับคำถามที่ถูกถามในระหว่างขั้นตอนการเสนอในพื้นที่ 51: area51.stackexchange.com/proposals/76571/emacs/76640#76640
b4hand

ไม่มีอะไรผิดปกติเมื่อถามคำถามเช่นนั้น ความคิดเห็นของฉันเดิมเป็นเพียงประโยคแรก IMO เป็นเรื่องดีสำหรับคนที่มีนิสัยชอบถาม Emacs ก่อนและถาม SE วินาที Emacs มีความพิเศษเล็กน้อยในการช่วยเหลือผู้ใช้ในลักษณะนี้ - ไม่ใช่หัวข้อ SE ของคุณโดยเฉลี่ย แต่ผู้ใช้มักต้องการความช่วยเหลือในการเรียนรู้วิธีถาม Emacs
Drew

คำตอบ:


16

เพิ่มบรรทัดเหล่านี้ใน.emacsไฟล์ของคุณ:

(require 'yaml-mode)
(add-to-list 'auto-mode-alist '("\\.ya?ml\\'" . yaml-mode))

auto-mode-alistเป็นตัวแปรซึ่ง emacs คำปรึกษาเมื่อใดก็ตามที่ไฟล์ใหม่จะถูกเปิด คุณสามารถเพิ่มการแมประหว่างรูปแบบชื่อไฟล์และโหมดหลัก

คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับวิธี Emacs กำหนดโหมดให้โหลดบัฟเฟอร์รับจากคู่มือ Emacs


4
"\\. ya? ml \\ '" เป็นรูปแบบที่ต้องการเนื่องจากเป็นจุดสิ้นสุดของสตริงไม่ใช่บรรทัดใหม่ จริงๆแล้วมันสร้างความแตกต่างสำหรับไฟล์ที่มีบรรทัดใหม่ในชื่อของพวกเขา ... 'foo.yaml \ nc' ควรเป็นไฟล์ C ไม่ใช่ไฟล์ yaml (ใช่มันไม่น่าจะเกิดขึ้นได้ แต่ยัง)
Sigma

2
มันจะมีประโยชน์หากคุณเชื่อมโยงไปยังคู่มือ emacs ที่ให้ข้อมูลนี้
Trevoke

นอกจากนี้ยัง(require 'yaml-mode)ไม่จำเป็นหากโหมดถูกโหลดอัตโนมัติ (ซึ่งเกือบทุกกรณี) ไลบรารีจะถูกโหลดโดยอัตโนมัติเมื่อคุณเปิดไฟล์ที่มีนามสกุลไฟล์ที่ถูกต้อง
shosti

เนื่องจากyaml-modeได้รับการติดตั้งเป็นแพ็คเกจฉันต้องการ(require 'yaml-mode)สาย File mode specification error: (void-function yaml-mode)มิฉะนั้นผมจะเห็นข้อผิดพลาดต่อไปนี้:
b4hand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.