Emacsで折りたたみ

ソースコードの折りたたみは、IDEには普通のありますがテキストエディタにはあまり無い機能だと思います。今まではそんなに必要性を感じていなかったのですが、プログラムのソースを各モジュールというかユニットで分けていると関係ない部分によってみたい部分の視認性が低くなっていることに気がつきました。それで、不要な部分は隠してしまおうと、Emacsで折りたためるLispはないものかと探していると、やはりありました。folding.elというもので、2007年ごろで最後のドキュメントが終わっているので枯れているようです。あまり関係ありませんが、自分の持っているorg-modeがすっごく不安定なので。aptでubuntuリポジトリから取ってきたもので何度か落ちるので使うのを止めました。自分でインストールする気にもなれずそのまま放置しています。いつかそれも何とかしなければなりませんね。便利なんだけどな>org-mode。

で、話を元に戻してさっそくインストールしてみました。どうやらみているとvimにある折りたたみをもってきたようで、コメントに
// {{{
// }}}
のようなマークがあると折りたたみができるようです。自分でマークを追加したい場合は、folding.elのドキュメント部分より
(folding-add-to-marks-list
'c-mode "/* {{{ " "/* }}} */" " */" t)
(folding-add-to-marks-list
'java-mode "// {{{ " "// }}}" nil t)
としてやると、それぞれのモードに追加することができます。

機能は便利なんですが、キーバインドがすごくまどろっこしいことになっています。プレフィックスキーがC-c @になっています。理由が頭のドキュメント部分に書いていますが、スルーしました。outline-modeがどうとか書いていた気がします。
(setq folding-mode-prefix-key "\C-c")
としてやるとプレフィックスキーがC-cに変更されます。
いくつか便利な機能。
C-f - リージョンにfoldingできるコメントをつけてくれます。
C-q - 折りたたみを開いたりと閉じたりトグル。
C-o - すべての折りたたみを開く。

ちなみに自分は折りたたみの開閉を
(define-key folding-mode-map "\M-s" 'folding-toggle-show-hide)
で、M-sに割り当てています。よく使うコマンドを毎回3ストロークで押すのはさすがに億劫なので。

コメント

このブログの人気の投稿

howmとorg-mode両方でタスク管理できるようにした

Fenrirを少し使いやすく

fenrirにmigemoを入れたのでメモ