हाल ही में सीखने के बाद use-packageमैंने अपने कॉन्फ़िगरेशन को इसमें पोर्ट करने का फैसला किया, लेकिन package.elपैकेज स्थापित करने और उन्हें अपडेट रखने की सुविधा देने के लिए खुद को अनिच्छुक पाया । मैंने पाया है कि यह गठबंधन करने के लिए थोड़ा मुश्किल है use-packageऔर package.el।
मैं आमतौर पर सीखने में दिलचस्पी रखता हूं कि लोग सिस्टम के use-packageसाथ कैसे गठबंधन करते package.elहैं, लेकिन अधिक विशिष्ट प्रश्न के लिए, पढ़ना जारी रखें।
यहाँ मैं क्या चाहता हूँ:
- संकुल प्रबंधक द्वारा संकुल स्थापित करने के लिए ताकि मैं आसानी से संकुल ब्राउज़ कर सकूँ और उन्हें अद्यतन रख सकूँ
list-packages। - पैकेजों को विशेष रूप से कॉन्फ़िगर और लोड करने के लिए
use-package, इसलिए मैं आसानी से अपनी इनइट फ़ाइल में देख सकता हूं कि मैं क्या लोड कर रहा हूं और यह कैसे कॉन्फ़िगर किया गया है। - वैकल्पिक रूप से, मैं भी माध्यम से संकुल स्थापित करने में सक्षम होना चाहते हैं
use-packageके:ensureकीवर्ड।
अगर मैं सही ढंग से समझ रहा हूं तो मुझे बहुत कम चाहिए, जो package-initializeमूल रूप से केवल उसी तरीके से हो जो इसे स्थापित करता है load-path। वर्तमान में मेरे पास मेरे कॉन्फ़िगरेशन में यह है:
;(package-initialize)
(setq package-enable-at-startup nil)
(let ((default-directory "~/.emacs.d/elpa"))
(normal-top-level-add-subdirs-to-load-path))
(require 'use-package)
पहली, टिप्पणी की गई, लाइन इतनी है Emacs 25 मदद नहीं करता (package-initialize)है मेरी init फ़ाइल में जोड़ें । के साथ बिट normal-top-level-add-subdirs-to-load-pathक्या package-initializeकरने के लिए load-pathएक सन्निकटन है, एक सन्निकटन कि काफी अच्छा लगता है।
यह मेरी इच्छाओं 1 और 2 को प्राप्त करने के लिए लगता है, लेकिन 3 नहीं। अगर मैं उपयोग करने की कोशिश करता :ensureहूं, तो मुझे एक त्रुटि संदेश मिलता है, जो कहता है कि package.elआरंभिक नहीं है। कॉल करने से package-initializeवह ठीक हो जाएगा, लेकिन मैं इससे बचना चाहता हूं क्योंकि a) मैं नहीं चाहता कि सभी असंख्य ऑटोलॉड्स लोड किए जाएं (मैं use-packageठीक-ठीक ऑटोलैड बनाने के लिए उपयोग करना पसंद करता हूं), और b) मैं आसानी से सक्षम होना चाहता हूं जब भी मैं चाहता हूं कि कुछ स्थापित पैकेजों को लोड करने से बचें (जो कि करना आसान है use-package)।
किसी को यह कैसे करना है के लिए एक सिफारिश है?
package-initializeजो मेरे प्रश्न को प्रस्तुत करता है।