मुझे इसका विचार पसंद है .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)))
दुर्भाग्य से, उनमें से कोई भी काम नहीं करता है।