जवाबों:
Emacs के पास कई स्थान हैं जो यह init फाइलों के लिए दिखता है, जैसा कि मैनुअल में प्रलेखित है । यदि आप Emacs को कस्टमाइज़ करना चाहते हैं, तो आपको उन फ़ाइलों में से एक से शुरू करना होगा।
एक आम दृष्टिकोण फ़ाइल का उपयोग करने के लिए है init.elअपने में user-emacs-directory, बजाय एक होने के .emacsअपने घर निर्देशिका में।
के लिए user-emacs-directoryचूक ~/.emacs.d, इसलिए यह अभी भी आपके घर के सापेक्ष है, लेकिन इस दृष्टिकोण का लाभ यह है कि आप अपने Emacs कॉन्फ़िगरेशन से संबंधित सभी चीजों को एक स्थान पर रख सकते हैं। उस निर्देशिका को संस्करण नियंत्रण में रखा जा सकता है, बैकअप किया जा सकता है, कई मशीनों पर साझा किया जा सकता है, आदि आप mklinkफ़ाइलों को किसी अन्य स्थान पर रखने के लिए सिम्लिंक ( विंडोज पर) का उपयोग कर सकते हैं ।
उदाहरण के लिए, यह देखने के लिए काफी सामान्य है कि लोग गितुब पर अपने Emacs कॉन्फ़िगरेशन को बनाए रखें। आप इसके कई उदाहरण पा सकते हैं । जीथब को init.el फाइलों के साथ संभावित परियोजनाओं के लिए खोज कर ।
user-emacs-directory
प्रत्येक Windows इंस्टाॅल पर, जिस पर मैं Emacs का उपयोग करता हूं, मेरे पास .emacsसूचीबद्ध स्थान पर एक फाइल में निम्न कोड है :
;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)
इस तरह मैं अपना .emacsऔर .emacs.d/कहीं भी रख सकता हूं।
आपकी .emacs फ़ाइल आपकी HOMEनिर्देशिका में जाती है । से Emacs मैनुअल:
होम का विंडोज समतुल्य उपयोगकर्ता-विशिष्ट अनुप्रयोग डेटा निर्देशिका है। वास्तविक स्थान विंडोज संस्करण पर निर्भर करता है ...
आप अपने सिस्टम पर किसी भी निर्देशिका को इंगित करने के लिए स्पष्ट रूप से पर्यावरण चर HOME सेट करके HOME के इस डिफ़ॉल्ट मान को ओवरराइड कर सकते हैं। होम को कमांड शेल प्रॉम्प्ट से या 'माई कंप्यूटर' के 'प्रॉपर्टीज' डायलॉग से सेट किया जा सकता है। होम को सिस्टम रजिस्ट्री में भी सेट किया जा सकता है, एमएस-विंडोज रजिस्ट्री देखें।
HOMEनिर्देशिका को सामान्य रूप से कुछ अलग करने पर विचार करेंगे । इसलिए मैं कॉल करता हूं कि हैक बदल दें। इसे इसके उचित मूल्य पर सेट करना स्पष्ट रूप से ठीक है।
तुम कहो:
मुझे पता है कि होम डायरेक्टरी को संस्करण नियंत्रण कारणों से कैसे सेट किया जा सकता है क्योंकि मैं एक अलग निर्देशिका से पढ़ने के लिए emacs सेट करने में सक्षम होना चाहता हूं (ताकि मैं emacs के लिए एक निर्देशिका विशिष्ट कर सकूं) ।
आपकी init फाइल आपके होम डायरेक्टरी में जाती है, जिसे आप कहीं भी रख सकते हैं। जाहिरा तौर पर आप सामान के लिए एक अलग निर्देशिका चाहते हैं जो Emacs लोड करता है। वह कोई समस्या नहीं है। अपनी इनिट फ़ाइल को अपनी होम डाइरेक्टरी में रखें, और उस फ़ाइल को वैरिएबल के मान में एक और डायरेक्टरी जोड़ें load-pathऔर फिर आपको जो भी अन्य Emacs लाइब्रेरी का उपयोग करना है, उसकी आवश्यकता है। उन पुस्तकालयों को उस दूसरी निर्देशिका में रखें।
IOW, आपकी init फ़ाइल को उस निर्देशिका के सेटअप से परे कुछ भी नहीं होना चाहिए जहाँ आप Emacs लाइब्रेरी को रखना चाहते हैं जिसे आप लोड करना चाहते हैं।
पूर्णता के लिए, मैं एक लिंक प्रदान करता हूं:
https://www.gnu.org/software/emacs/manual/html_node/efaq-w32/Location-of-init-file.html
जो कहता है कि आप HOMEरजिस्ट्री पथ में एक मान सेट कर सकते हैं :
HKCU\SOFTWARE\GNU\Emacs\HOME
लेकिन यह मान पर्यावरण चर द्वारा ओवरराइड किया जाता है HOME।
लगता है कि तुम डाल सकता है (setq user-init-file "C:/path/to/.emacs")और में अन्य लाइनों @ryan द्वारा प्रस्तावित साइट-start.el
आपकी साइट में साइट स्टार्टअप फ़ाइल भी हो सकती है; यदि यह मौजूद है, तो इसे साइट-स्टार्ट.ल नाम दिया गया है। Default.el की तरह, Emacs इस फ़ाइल को Lisp पुस्तकालयों के लिए मानक खोज पथ के माध्यम से ढूँढता है। Emacs आपकी लायब्रेरी फ़ाइल लोड करने से पहले इस लायब्रेरी को लोड करता है।
site-start.elअपना खुद का लोड करने के लिए कुछ का उपयोग करके पूर्ण नियंत्रण ले सकते हैंinit.elऔर आपको अब आवश्यकता नहीं है a.emacs। इस उदाहरण में, आपको होम डायरेक्टरी के साथ फिड करने की आवश्यकता नहीं है (जब तक कि कंप्यूटर पर कोई अन्य व्यक्ति वहां सामान नहीं डाल रहा है जो आपको प्रभावित करेगा)। दूसरे शब्दों में, यह रिक्त हो सकता है और आपको इसे छूने की आवश्यकता नहीं है।