8

私は最近、emacsのorg-modeの基本を学び、折りたたみ/展開の概念をソースファイルの一部に適用することを想像せずにはいられませんでした。.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でこのようなことをどのように達成できますか?

ありがとう!

4

3 に答える 3

8

素晴らしいですorg-modeが、それはあなたのファイルであなたが望むように維持することができると私が信じていないいくつかの構造を必要とし.emacsます。

うまく機能するのはですfolding-modewikiページでその情報を確認してください。ただし、基本的には、次のように、折りたたむコードのチャンクの周りにコメントを設定します。

;;{{{ 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...
于 2013-02-07T05:11:29.330 に答える
7

Babelを使用すると、まさにこれを実現できます(つまり、初期化ファイルをorg-modeで管理できます)。具体的には、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:

事実上、Treyの提案と非常によく似ていますが、折りたたむことで、私が説明していないセクションを簡単にネストできると期待しています(そうする必要はありません)。アウトラインアプローチでは、ファイルが少しきれいに見えるようになります。

于 2013-02-07T06:23:47.343 に答える
4

また、outline-minor-modeと連携してorg-modeのように感じさせる新しいOutshineパッケージもご覧ください。(e)lispファイルでは、outshineはセミコロンのシーケンスをヘッダーとして解釈するため、コメントの標準規則に従う既存のすべてのコードは、変更なしで折りたたむことができます。多くのorg-modeのようなキーバインディング(見出しを折りたたむ/展開するTABなど)も機能します。

于 2013-05-05T04:15:18.850 に答える