2013-02-07 5 views
8

मैंने हाल ही में emacs 'org-mode की मूल बातें सीखी हैं और स्रोत की फ़ाइल के हिस्सों में पतन/विस्तृत अवधारणा को लागू करने में मदद नहीं कर सकती हैं। कोड के कई लाइनों के लिएसंगठन मोड के साथ .emacs फ़ाइल के हिस्सों को संकुचित/विस्तृत करें

हेडर
; ERC config... 

; DIRED config... 

; MISC config... 

इनमें से प्रत्येक निश्चित रूप से होगा एक बार विस्तार किया है, जैसे: मैं कुछ हद तक इस तरह का subparts और लोड पर केवल प्रदर्शन हेडर में मेरी .emacs फ़ाइल को विभाजित करने में सक्षम होना चाहते हैं यह:

; ERC config 
(defun start-irc() 
    (interactive) 
    (erc-tls :server "irc.freenode.net" :port 6697 :nick "foo")) 

; DIRED config... 

; MISC config... 

तो क्या यह संभव है? मैं इस तरह कुछ emacs 24.2 के साथ कैसे पूरा कर सकता है?

धन्यवाद!

उत्तर

8

org-mode जितना अच्छा है, इसे कुछ संरचना की आवश्यकता होती है, जो मुझे विश्वास नहीं है कि आप अपनी .emacs फ़ाइल में जिस तरह से चाहते हैं उसे बनाए रखा जा सकता है।

काम अच्छी तरह से folding-mode है। wiki page पर इसके लिए जानकारी की जाँच करें, लेकिन मूल रूप से आप क्या करते हैं कोड का हिस्सा तुम इतनी तरह एक गुना में डाल करना चाहते हैं, चारों ओर टिप्पणियां की स्थापना की है:

;;{{{ some folder of some kind 

(a few lines) 
(of lisp) 
(this "code" is just filler) 

;;}}} 


;;{{{ a different folder 

(some more elisp code) 

;;}}} 

और जब यह मोड़ा जाता है, यह देखो की तरह:

;;{{{ some folder of some kind... 

;;{{{ a different folder... 
+0

यह वैसे ही काम करता था जैसा मैं चाहता था। आयात भाग के साथ थोड़ा मुश्किल हो गया लेकिन मैंने इसे समझ लिया। – ldionmarcil

7

Babel आप वास्तव में यह (यानी प्रबंध अपने init ऑर्ग मोड में फ़ाइल) प्राप्त करने के लिए सक्षम बनाता है। विशेष रूप से, देखें: http://orgmode.org/worg/org-contrib/babel/intro.html#emacs-initialization

स्वयं, मैं outline-minor-mode का उपयोग अपनी init फ़ाइल में अस्पष्ट रूप से समान उद्देश्यों के लिए करता हूं। विभिन्न चीजों को रूपरेखा शीर्षकों के रूप में माना जाता है, लेकिन आप उस व्यवहार को प्रतिबंधित करने के लिए फ़ाइल स्थानीय चर के रूप में outline-regexp सेट कर सकते हैं, और फिर आप outline-toggle-children (जिसे आप कुछ सुविधाजनक कुंजी से जोड़ देंगे) के साथ खुली और बंद चीजों को टॉगल कर सकते हैं। टॉगल कमांड केवल शीर्षक पर नहीं, अनुभाग में कहीं से भी काम करता है।

मैं शुरू शीर्षकों मैं ;;;; * साथ डिफ़ॉल्ट रूप से संक्षिप्त और के साथ अपने init फ़ाइल खत्म करना चाहते हैं: आप इस्तेमाल कर सकते हैं

;;; Local Variables: 
;;; outline-regexp: ";;;; " 
;;; eval:(progn (outline-minor-mode 1) (while (re-search-forward "^;;;; \\* " nil t) (outline-toggle-children))) 
;;; End: 

अपने उदाहरण में:

;;; Local Variables: 
;;; outline-regexp: "; " 
;;; eval:(progn (outline-minor-mode 1) (hide-body)) 
;;; End: 

सुंदर प्रभाव में समान ट्रे के सुझाव, हालांकि मैं तहखाने के साथ उम्मीद करता हूं कि आप छोटे से घोंसले वाले वर्गों को देख सकते हैं जिनके लिए मैं लेखांकन नहीं कर रहा हूं (ऐसा करने की कोई आवश्यकता नहीं है)। मुझे लगता है कि रूपरेखा दृष्टिकोण फ़ाइल को थोड़ा साफ करने वाला छोड़ देता है, अगर यह आपके लिए महत्वपूर्ण है।

4

आप नए Outshine पैकेज पर भी एक नज़र डालें जो आउटलाइन-नाबालिग-मोड के साथ मिलकर काम करता है ताकि इसे ऑर्ग-मोड की तरह महसूस किया जा सके। (ई) lisp फ़ाइलों outshine semicolons के अनुक्रमों को हेडर्स के रूप में व्याख्या करता है ताकि टिप्पणियों के लिए मानक सम्मेलनों का पालन करने वाले सभी मौजूदा कोड किसी भी बदलाव के बिना foldable हो जाए। कई ऑर्ग-मोड-जैसी कुंजी बाइंडिंग (जैसे टैब को फोल्ड/ओल्ड हेडिंग इत्यादि) भी काम करते हैं।

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