2012-02-25 28 views
5

संपादित करें: यह पता चला है कि मेरी .emacs फ़ाइल में दूसरा संपादन वास्तव में काम करता है। (इस प्रविष्टि के नीचे टिप्पणियां देखें।)emacs: एक विशिष्ट निर्देशिका में एक विशिष्ट निर्देशिका में सभी .txt फ़ाइलों को खोलें

मैंने एमएक्स में ऑर्गेम का उपयोग करने वाली सभी txt फ़ाइलों को खोलने के लिए .emacs के कुछ जोड़े की कोशिश की। उन्होंने काम नहीं किया। मैं इसे कैसे कर सकता हूं?

;;SET EMACS AS DEFAULT MAJOR MODE TO FOR ALL FILES WITH AN UNSPECIFIED MODE 
(setq default-major-mode 'org-mode) 

;;OPEN ALL TXT FILES IN ORGMODE 
(add-to-list 'auto-mode-alist '("\\.txt$" . org-mode)) 
इसके अतिरिक्त

:

यह भी केवल एक निश्चित निर्देशिका orgmode में फ़ाइलों txt खोलने के लिए बेहतर होगा। किसी भी संकेत के रूप में यह कैसे किया जा सकता है की सराहना की जाएगी।

(add-hook 'find-file-hooks 
      (lambda() 
      (let ((file (buffer-file-name))) 
       (when (and file (equal (file-name-directory file) "c:/temp/")) 
       (org-mode))))) 

एक विकल्प के आप अपनी पाठ फ़ाइल की शुरुआत में मोड लाइन जोड़ सकते हैं के रूप में:

+1

आपका कोड txt फ़ाइलों को खोलने चाहिए संगठन मोड में। कम से कम, यह मेरे लिए काम करता है। यदि आप बाद में txt फ़ाइलों के लिए मोड संशोधित नहीं करते हैं तो अपनी .emacs फ़ाइल देखें। –

+0

मैं यह बहुत छोटा नहीं हूं। कारण यह है कि मैं इसके लिए नया हूं। लेकिन मुझे एहसास है कि जब भी मैं emacs शुरू करता हूं, अब मुझे यह संदेश मिलता है: "चेतावनी (प्रारंभिकरण):' /Users/Klsrd/.emacs 'लोड करते समय एक त्रुटि आई: पार्सिंग के दौरान फ़ाइल का अंत:/उपयोगकर्ता/Klsrd /। emacs सामान्य ऑपरेशन सुनिश्चित करने के लिए, आपको अपनी प्रारंभिक फ़ाइल में त्रुटि के कारण जांच और निकालना चाहिए। एक पूर्ण त्रुटि बैकट्रैक देखने के लिए '--debug-init' विकल्प के साथ Emacs प्रारंभ करें।"क्या यह कारण हो सकता है? –

+1

आपके .emacs में कुछ गड़बड़ है। इससे सब कुछ हटाएं और केवल (ऐड-टू-लिस्ट 'ऑटो-मोड-एलीस्ट' (" \\। Txt $ "। Org-mode डालें) यह देखने के लिए कि क्या यह –

उत्तर

2

आप एक हुक जो फ़ाइल निर्देशिका पुष्टि करता है और बफर मोड को संशोधित करता है लागू कर सकते हैं। इस मामले में emacs निर्दिष्ट मोड सेट करेगा।

; -*- mode: org;-*- 
* header 1 
** header 2 
+0

आपको पहले की आवश्यकता नहीं है; '- * - मोड: org - * - ' – Tom

3

auto-mode-alist में regex और अधिक जटिल कुछ, जैसे "^/path/to/.*\\.txt$"

4

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

वांछित निर्देशिका में .dir-locals.el नामक फ़ाइल बनाएं।

((nil (eval . (if (string-match ".txt$" (buffer-file-name))(org-mode))))) 

तो इस तरह पढ़ें::

(if .... (org-mode)) 
0

मैं ओलेग से कुछ कोड एक साथ चिपके: किसी भी बड़े-मोड (nil), eval निम्नलिखित रूप uate के लिए

यहाँ सामग्री हैं पावलिव का जवाब यहां, और Yibe के elisp - File extension hook in Emacs - Stack Overflow

(defun use-org-mode-for-dot-txt-files-in-owncloud() 
    (when (and (string-match owncloud buffer-file-name) 
      (string-match "\\.txt\\'" buffer-file-name)) 
    (org-mode))) 
(add-hook 'find-file-hook 'use-org-mode-for-dot-txt-files-in-owncloud) 

इस तरह, हालांकि अपने पीसी से केवल .txt फाइलों के साथ ही क्लाउड वेब और फोन ऐप्स केवल अनुकूल हैं, मैं उनके लिए Emacs 'Org-Mode का उपयोग कर सकता हूं।

(मैं संगठन-मोड का उपयोग करने के लिए सभी .txt फ़ाइलों सेट करते हैं, यह todotxt-mode टूट जाता है।)

(ध्यान दें कि owncloud एक स्ट्रिंग चर मेरी ownCloud पथ के बराबर है।)

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