ฉันมีการปรับแต่งบางอย่างสำหรับ emacs ที่ฉันต้องการใช้สำหรับโครงการเดียว แต่ไม่ส่งผลกระทบต่อ emacs ทั่วโลก มีวิธีใดบ้างที่ฉันสามารถให้ emacs โหลดไฟล์ init เฉพาะเมื่อเรียกใช้จากไดเรกทอรีหนึ่งหรือโหลดไฟล์ init ทั้งหมดโดยอัตโนมัติในไดเรกทอรีที่เปิดตัว
ฉันมีการปรับแต่งบางอย่างสำหรับ emacs ที่ฉันต้องการใช้สำหรับโครงการเดียว แต่ไม่ส่งผลกระทบต่อ emacs ทั่วโลก มีวิธีใดบ้างที่ฉันสามารถให้ emacs โหลดไฟล์ init เฉพาะเมื่อเรียกใช้จากไดเรกทอรีหนึ่งหรือโหลดไฟล์ init ทั้งหมดโดยอัตโนมัติในไดเรกทอรีที่เปิดตัว
คำตอบ:
คุณอาจต้องการที่จะดูที่ตัวแปรสารบบ โดยทั่วไปคุณจะต้องสร้าง.dir-locals.el
ไฟล์ในโปรเจ็กต์รูทด้วยการตั้งค่าเฉพาะโปรเจ็กต์ในไฟล์ ตอนนี้เมื่อใดก็ตามที่คุณเปิดไฟล์ในไดเรกทอรีหรือไดเรกทอรีย่อยใด ๆ จะใช้การตั้งค่าใน.dir-locals.el
ไฟล์
ตัวอย่างเช่นสมมติว่าคุณต้องการใช้make package install
คำสั่งคอมไพล์ในโครงการ A เท่านั้นคุณจะต้องสร้างไฟล์ชื่อ. dir-locals.el ในไดเรกทอรีรากของโครงการและเพิ่มสิ่งต่อไปนี้
((nil . ((compile-command . "make package install"))))
ต่อจากนี้ไปเมื่อใดก็ตามที่คุณเรียกใช้compile
คำสั่งจากไฟล์ใด ๆ ภายใต้ไดเรกทอรี A ค่าเริ่มต้นcompile-command
จะเป็นหนึ่งที่ระบุไว้ข้างต้นอย่างไรก็ตามcompile command
สำหรับไฟล์ที่อยู่นอกไดเรกทอรี A จะไม่ถูกแตะต้อง
ทางเลือกที่น้อยกว่าที่โดดเด่นในการ.dir-locals.el
เป็นEditorConfigมาตรฐานซึ่งมีemacs แพคเกจ ไม่รองรับตัวเลือกเกือบทั้งหมด แต่มันช่วยให้ทีมงานได้มาตรฐานในการตั้งค่าบางอย่างและใช้พวกมันข้ามบรรณาธิการต่าง ๆ
มันทำงานในลักษณะเดียวกันมากโดยมี.editorconfig
ไฟล์เฉพาะโครงการที่ระดับบนสุด