2013-12-12 8 views
38

यह अजीब बात है, list-packages बफर वास्तव में स्थापित कुछ संकुलों के लिए स्थिति के रूप में "उपलब्ध" दिखाता है। क्या कॉलम उनके लिए "स्थापित" नहीं होना चाहिए? जब मैं एक पर क्लिक करता हूं, तो मुझे सूचित करने के लिए एक नया बफर खुलता है कि पैकेज स्थापित है, लेकिन कोई अनइंस्टॉल विकल्प प्रदान नहीं करता है। तुलनात्मक रूप से, अन्य संकुल जिन्हें मैंने "उपलब्ध" के रूप में स्थापित नहीं किया है, उनके आगे "इंस्टॉल" विकल्प के साथ।स्थापित elpa पैकेज को कैसे हटाएं

मैं एक स्थापित पैकेज को अनइंस्टॉल कैसे करूं? जिसे मैं वर्तमान में कुल्हाड़ी की तलाश में हूं वह चिकनी-स्क्रॉलिंग है।

+0

यह भी देखें http://stackoverflow.com/questions/16469600/how-to-remove-an-installed-package-in-emacs-ver-24 जिसे मैंने डुप्लिकेट के रूप में नामांकित किया है, लेकिन जिसमें कुछ संभावित रूप से उपयोगी हैं टिप्पणियों। – tripleee

उत्तर

34

मुझे इसके लिए गरीब के मैन समाधान का उपयोग करना पसंद है: ~/.emacs.d/elpa/ (या आपके package-directory-list में निर्दिष्ट निर्देशिका) में अवांछित पैकेज के लिए निर्देशिका को हटाएं।

+1

इसके लिए मेरी चिंता यह है कि कहीं और फाइल नहीं है * क्या * स्थापित है, यह निर्देशिका का हिस्सा नहीं होगा? निश्चित रूप से emacs को पता होना चाहिए कि यह लोड करना क्या है यदि वह जानकारी हमेशा .emacs फ़ाइल में नहीं है – johnbakers

+5

ऐसी कोई फ़ाइल नहीं है। 'पैकेज-प्रारंभिक' पैकेजों के लिए 'पैकेज-निर्देशिका-सूची' में आपकी कॉन्फ़िगर की गई निर्देशिका स्कैन करता है। 'पैकेज-लोड-सूची' का उपयोग किया जाता है, और ऑटोलोड्स "जादू" भाग करते हैं।आम तौर पर @ लूनरीर्न ने सुझाव दिया कि नौकरी करना चाहिए, लेकिन जब आपको समस्याएं मिलती हैं तो निर्देशिका को हटाने का एक सुरक्षित विकल्प होता है। – juanleon

+0

धन्यवाद! मैंने 'package-filter.el' स्थापित किया, फिर बस पाया कि पैकेज की मैनेजर सहित कई चीजें टूटी हुई हैं, इसलिए इस समाधान को छोड़कर कोई भी 'डी' ->' x' और न ही कुछ भी। – ryenus

25

पैकेज मेनू सभी पैकेज के ज्ञात संस्करण दिखाता है।

इस प्रकार, आप उदाहरण के लिए उपलब्ध एक स्थापित पैकेज भी देख सकते हैं, यदि उपलब्ध एक ही पैकेज का नया संस्करण उपलब्ध है, या एक ही पैकेज विभिन्न अभिलेखागार से उपलब्ध है।

ऐसे पैकेज को हटाने के लिए, बस सूची में नीचे स्क्रॉल करें, या पैकेज की घटनाओं की खोज के लिए C-s PACKAGE-NAME का उपयोग करें। एक बार जब आप पैकेज के संस्करण संस्करण को स्थापित करने के बाद, D दबाएं, और फिर x को कार्रवाई निष्पादित करने और वास्तव में पैकेज को हटाने के लिए पैकेज को चिह्नित करने के लिए दबाएं।

+0

समस्या यह है कि जब मैं डी दबाता हूं तो इसके आगे कोई निशान नहीं होता है, भले ही यह इंस्टॉल हो। – johnbakers

+1

@OpenLearner क्या आपने ** स्थापित ** के रूप में चिह्नित पैकेज संस्करण पर 'डी' दबाया था? यह * उपलब्ध * के रूप में चिह्नित संस्करण पर काम नहीं करेगा। – lunaryorn

+0

उनमें से कोई भी सूची में वास्तविक कॉलम में "स्थापित" के रूप में नहीं दिखाया गया है, भले ही यह पैकेज वास्तव में स्थापित है और ऐसा कहता है जब आप उस पर क्लिक करते हैं। – johnbakers

14

मुझे इसे मौके से मिला: पैकेज सूची लाएं, उस पैकेज को ढूंढें जिसे आप निकालना चाहते हैं, और 'डी' दबाएं। जब आप पूरा कर लें, तो 'एक्स' दबाएं और यह संकुल को हटा देगा। यह बिल्कुल नए कामों को स्थापित करते समय काम करता है, सिवाय इसके कि आप 'I' को 'डी' से बदलते हैं (मुझे लगता है कि 'डी' 'डिलीट' के लिए खड़ा है)।

+0

'F10' दबाएं: इंस्टॉल करने के लिए चिह्नित करें (i) हटाने के लिए चिह्नित करें (डी) चिह्नित विकल्प निष्पादित करें (x) – xiaobing

22

मैं सिर्फ d टाइप करके हटाने के लिए

M-x packages-list-packages 
C-s django-snippets 

मार्क पैकेज द्वारा Django-के टुकड़े संकुल अनइंस्टॉल कर दिया है। x टाइप करके निष्पादित करें।

~/.emacs.d/elpa/ के अंदर संबंधित निर्देशिका को हटाने के समान ही वही बात।

एनबी, हाल ही में Emacs के लिए, कमांड list-packages (packages-list-packages के बजाय)

13

Emacs 25.1 और इसके बाद के संस्करण के लिए, आदेश

M-x package-delete

संकुल के नाम में स्वतः पूर्ण के साथ एक शीघ्र जन्म देती है आप स्थापित हो गए हैं।

+4

यह ध्यान दिया जाना चाहिए कि यह केवल Emacs 25.1+ के मामले में है – npostavs

संबंधित मुद्दे