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