मैं पैकेज और फ़ाइलों का ट्रैक रखने के लिए निम्न संरचना का उपयोग करता हूं
~/.emacs.d
|-- elpa ;; Package.el packages
|-- hack ;; Development versions of packages (e.g. org, personal packages)
|-- single-lisp ;; Individual lisp files from outside sources (e.g. EmacsWiki)
|-- site-lisp ;; Lisp packages not managed by package.el (directories)
|-- user-config ;; Machine/situation specific customization (work vs home)
| `-- custom.el ;; Customization settings
|-- lisp ;; Individual .el files to keep init.el clean
| `-- defaults.el ;; Default configuration settings
`-- init.el
मैं तब use-packageप्रबंधन करता हूं कि कौन से पैकेज लोड किए गए हैं और प्रत्येक पैकेज के लिए कौन से अनुकूलन निर्धारित हैं। अधिकांश समय केवल hackऔर elpaअपडेट करने की आवश्यकता होती है, अन्य फ़ोल्डर अक्सर एक-बंद पैकेज के लिए होते हैं जिन्हें मैं संक्षेप में परीक्षण या उपयोग करना चाहता हूं लेकिन लोड करने की आवश्यकता नहीं है (यहां तक कि मूर्खतापूर्ण)।
custom.el कस्टमाइज़ सेटिंग्स के लिए है, जिसे मैं उपयोग नहीं करना चाहता (और अगर मैं उपयोग नहीं करता तो भी संस्करण नहीं करता)।
defaults.elसामान्य कॉन्फ़िगरेशन (मेनू-बार, फ़ॉन्ट, एन्कोडिंग, आदि) के लिए है जो तब किसी भी .el फ़ाइल में अधिलेखित किया जा सकता है user-config/एक सिस्टम की अनुमति देने के लिए जो मैं उम्मीद करता हूं कि काम करेगा, लेकिन पर्यावरण को फिट करने के लिए समायोजित किया जा सकता है।
मैं पहले रखने की कोशिश की थी functions, macros, adviceअलग संकुल में सामग्री के बीच चित्रण के लिए अनुमति देने के लिए, लेकिन परिभाषा में भाग / आवश्यकता मुद्दों इसलिए में उन वापस डाल दिया है init.el। अंततः उन्हें वापस रखा जा सकता है ~/.emacs.d/lisp/।
मैं init.elसुव्यवस्थित रखने की कोशिश करता हूं , फ़ंक्शन और उद्देश्य से सामग्री को सॉर्ट करता हूं ताकि इसे फिर से खोजना सीधा हो। मेरे पास मोनोलिथिक init.elफ़ाइल थी और अंत में नई सामग्री जोड़ते रहे (या जहां मुझे लगा कि यह फिट हो सकता है) और फिर अंत में यह जानना नहीं होगा कि मैंने क्या जोड़ा था या मैंने इसे कहाँ जोड़ा था जब मैं इसे देखने के लिए गया था (और कभी-कभी खोज का उपयोग isearchकरने से मदद नहीं मिली क्योंकि मुझे याद नहीं था कि मैंने उस समय चीजों का नाम कैसे रखा था)।