हाल ही में सीखने के बाद 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
जो मेरे प्रश्न को प्रस्तुत करता है।