.dir-locals.el
ผมชอบความคิดของ ฉันมี.dir-locals.el
ไฟล์ของตัวเองในโฮมไดเร็กตอรี่ที่ควรตั้งค่าตัวแปรทั้งหมด.dir-locals.el
สำหรับไดเร็กตอรี่/ ไฟล์ที่ฉันเปิดยกเว้นว่าจะใกล้กับไดเรคทอรีที่ฉันเปิดไฟล์เข้าไป. ถึงแม้ว่าไฟล์นั้นจะรู้จัก นำไปใช้กับไฟล์ที่เปิด
นี่คือของฉัน~/.dir-locals.el
:
(("dev/school" .
((indent-tabs-mode . nil)
(c-basic-offset . 4)))
("dev/test" .
((indent-tabs-mode . nil)
(c-basic-offset . 4)))
(c-mode .
((c-file-style . "linux")
(c-basic-offset . 8))))
เมื่อฉันเปิดแฟ้ม~/dev/test/test.c
ตัวแปรindent-tabs-mode
มีการตั้งค่าt
และเป็นc-basic-offset
8
(describe-variable 'c-basic-offset)
ในแฟ้มที่บอกฉันว่ามันมีการตั้งค่าจาก8
~/.dir-locals.el
(describe-variable 'indent-tabs-mode)
ในไฟล์นั้นบอกว่ามันคุ้มค่า ( t
) เป็นเพียงแค่ในสถานะเริ่มต้น
ฉันสามารถทำพฤติกรรมที่ต้องการได้หรือไม่? ผมทำอะไรผิดหรือเปล่า? พา ธ ของไฟล์ถูกแมปไปยังไดเรกทอรีย่อย~/.dir-locals.el
อย่างไร
แก้ไข:
ตามที่โจนาธานแนะนำฉันก็ลองทำเช่นกัน:
(;; dev/school subdir
("dev/school" .
;; dev/school specification for all modes
(nil . ((indent-tabs-mode . nil)
(c-basic-offset . 4)))))
และแม้กระทั่งสิ่งที่add-dir-local-variable
เพิ่ม:
(("dev/school"
(indent-tabs-mode)
(c-basic-offset . 4)))
น่าเสียดายที่ไม่มีงานเหล่านั้นเช่นกัน