Emacs (.emacs) कॉन्फ़िगरेशन फ़ाइल को लोड करने में विफल रहता है


8

मैं Ubuntu 9.04 पर Emacs का उपयोग कर रहा हूं।

मेरे पास ~/.emacs.dनिर्देशिका में मेरी एमएसीएस कॉन्फ़िगरेशन फ़ाइल है ।

मेरी Emacs फ़ाइल कहलाती है .emacs

मेरा कुछ बुनियादी विन्यास है। हालाँकि, जब मैं एमएसीएस शुरू करता हूं, तो यह मेरे कॉन्फ़िगरेशन को कभी भी लोड नहीं करता है और मुझे इसे ईजी का उपयोग करके मैन्युअल रूप से करना पड़ता है

M-X Transient-mark-mode

मेरी इमैक फ़ाइल नीचे सूचीबद्ध है:

;; Emac customization file path
(add-to-list 'load-path "~/emacs.d")

;; Use font lock mode
(global-font-lock-mode t)

;; Highlight cursor line
(global-hl-line-mode t)

;; Highlight selected region
(transient-mark-mode t)

मैं मैन्युअल रूप से प्रविष्टियों को जोड़ने के बजाय इस कॉन्फ़िगरेशन में जोड़ना चाहता हूं।

जवाबों:


13

आपकी init फ़ाइल में व्यक्तिगत EmacsLisp कोड होता है जिसे आप Emacs शुरू करते समय निष्पादित करना चाहते हैं।

  • GnuEmacs के लिए, यह ~/.emacsया _emacsया है ~/.emacs.d/init.el
  • XEmacs के लिए, यह ~/.xemacsया है ~/.xemacs/init.el

5

टोरोक गाबोर का जवाब है कि आप क्या देख रहे हैं। मैं केवल आपके इनिट फ़ाइल में एक मामूली टाइपो इंगित करना चाहता हूं, यह होना चाहिए

(add-to-list 'load-path "~/.emacs.d")

4

जैसा कि टॉर्क ने कहा, शायद आपको नाम बदलने की जरूरत emacsहै init.el

एक चीज जो मुझे कुछ समय के लिए पागल कर देती है वह यह है कि अगर ~/.emacsमौजूद है तो इमैक लोड नहीं करता है ~/.emacs.d/init.el। इसलिए, यदि आपके पास ~/.emacsया तो इसे हटा दें और इसकी सामग्री को दूसरी फ़ाइल में, या (load "~/.emacs.d/init.el")अंदर ले जाएँ ~/.emacs


2

हालांकि, यह उल्लेख किया जाना चाहिए कि ~/.emacs.d/init.elवैकल्पिक प्रति उपयोगकर्ता init फ़ाइल के रूप में केवल Emacs 22+ भार है । एक नए लेकिन नीचे-संगत सुविधा के रूप में यह प्राथमिकता देता है ~/.emacs। इसमें व्यवस्था की गई है lisp/startup.el

स्टार्टअप के बाद user-init-fileवैरिएबल में init फ़ाइल प्रभारी, जैसे /home/me/.emacs.elcया C:\Users\Me\.emacs.d\init.elआदि का पूर्ण पथनाम होता है। इसके मान को देखने के लिए, उसके बाद *scratch*बफर प्रकार (insert user-init-file)में C-x C-e

~/.emacs.d/निर्देशिका वास्तव में अतिरिक्त प्रति-उपयोगकर्ता फ़ाइलों के लिए एक मानक स्थान है। पथ Emacs चर द्वारा परिभाषित किया गया है user-emacs-directory। विंडोज के तहत यह पथ HOME(नहीं USERPROFILE) चर पर निर्भर करता है । उदाहरण के लिए, कब HOMEसेट किया C:\जाएगा C:\.emacs.d। जब Emacs चल रहा है तो मैं इस व्यवहार को एक बैच-फ़ाइल का उपयोग करके करता हूं, HOMEजो पेन ड्राइव पर एक डायरेक्टरी में सेट होता है।

इस निर्देशिका में केवल लिस्प फाइलें नहीं हैं! उदाहरण के लिए, डिफ़ॉल्ट रूप से किसी भी संपादित फ़ाइल को ~/.emacs.d/auto-save-list/( auto-save-list-file-prefixचर देखें ) ऑटो-सेव फीचर । इसने मुझे बैकअप-फाइलों को भी स्टोर करने के लिए प्रेरित किया:

(defvar --user-backup-directory (concat user-emacs-directory "backups"))
(if (not (file-exists-p --user-backup-directory))
    (make-directory --user-backup-directory t))
(setq backup-directory-alist `(("." . ,--user-backup-directory)))
(setq make-backup-files t)

Emacs 22 से पहले ~/elispमेरे पास अपनी व्यक्तिगत लिस्प फाइलों के लिए एक निर्देशिका थी । अब मैं उपयोग करता हूं

(pushnew (expand-file-name "~/.emacs.d/elisp") load-path)

जैसा कि यहां बताया गया है

तो ~/.emacs.dवास्तव में काफी उपयोगी है, हालांकि मैं ~/.emacs.d/init.elसंदिग्ध का विचार खोजता हूं । ~/.emacs.d/निर्देशिका अतिरिक्त प्रति-उपयोगकर्ता फ़ाइलों के लिए एक मानक स्थान है। क्या यह अधिक समझ में नहीं आता जब Emacs ~/.emacs.d/init.elइसके अतिरिक्त पढ़ता है ~/.emacs.el?


1

यदि कोई अन्य व्यक्ति आपके लिए काम नहीं करता है, तो कोशिश करने के लिए एक और बात है। यह है कि .emacs और .emacs.d फ़ाइल और निर्देशिका को चॉइस करना।

किसी कारण के लिए मेरे .emacs और .emacs.d के पास रूट और emacs का स्वामित्व था, जब तक मैं इसे लोड नहीं करता sudo emacs

एक साधारण sudo chown `whoami` .emacsने किया।


0

कंटेनर में स्विच करते समय मुझे भी यह समस्या थी।

यह पता चला है, कि पर्यावरण ठीक से स्थापित नहीं किया गया था, USERऔर HOMEचर अभी भी रूट उपयोगकर्ता को इंगित करता है, भले ही मैं अपने कामकाजी उपयोगकर्ता के रूप में लॉग इन था।

su - <username>इसे एक निश्चित रूप से करना, क्योंकि अब पर्यावरण को उम्मीद के मुताबिक शुरू किया गया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.