2013-02-07 27 views
8

文件我最近才知道的Emacs的組織模式的基本知識,不由得想象應用摺疊/展開的概念,一個源文件的組成部分。我希望能夠在劃分負載子部分,只顯示標題我.emacs文件,有點類似如下:摺疊/的.emacs的擴大部分與組織模式

; ERC config... 

; DIRED config... 

; MISC config... 

每個這些當然會是標頭碼的多線一旦擴大,像這個:

; 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

我自己,我在我的init文件中使用了outline-minor-mode,用於模糊的類似目的。各種東西都被視爲大綱標題,但您可以將outline-regexp設置爲文件局部變量來限制該行爲,然後使用outline-toggle-children(您將綁定到某個方便的鍵)來打開和關閉事物。從任何地方的切換命令作品的部分,而不僅僅是標題。

我開始的標題我想在默認情況下倒塌與;;;; *,並結束與我的初始化文件:

;;; 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: 

的效果非常相似Trey的建議,但我期待着與摺疊,你可以平凡哪,我不佔(有沒有這樣做的必要)窩部分。我覺得外形辦法離開尋找稍微乾淨的文件,如果對你很重要。

4

您還可以查看與outline-minor-mode一起使用的新Outshine包,使其更像組織模式。在(e)lisp文件中,outshine將分號序列解釋爲標題,因此遵循標準的註釋慣例的所有現有代碼都可以在沒有任何更改的情況下進行摺疊。許多組織模式的鍵綁定(如TAB摺疊/展開標題等)也起作用。