- origami 20170129.805(in MELPA)
- Flexible text folding
概要
outline-magic.el(レビュー) は outline-mode や
outline-minor-mode で org-mode と同等の折畳み・展開をします。
view-modeを解除しても折畳みを保持するよう設定を更新しました。
origami.el は、Lisp系言語とC系言語で関数・メソッドを
折畳み・展開するマイナーモードです。
いわば、 org-mode 風にコードのアウトラインを
見るようにするものです。
yafolding.el や hideshow.el と同様ですが
これらよりも高機能です。
また、origami.elは言語のパーサを内蔵している点も異なります。
ただ、デフォルトの状態では単にコマンドが羅列してあるだけなので、
本設定では view-mode 時にC-i(TAB)を押すことで
org-mode風の挙動をさせています。
C-iで現在の関数(メソッド)を折畳み・展開し、
C-u C-iですべての関数(メソッド)の折畳み・展開をします。
一般にアウトライン操作は閲覧時に使うものなので、
view-modeにキーを割り当てておくことを強くおすすめします。
outline-minor-mode のように普通に
マイナーモードを定義しているだけでは、
気が狂ったようなキーバインドになってしまうからです。
コードを見るときはぜひともview-modeを使いましょう。
指の保護にもなります。
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてorigamiを使う方は
以下のコマンドを実行します。
M-x package-install origami
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name origami
設定 150103055834.origami.el(以下のコードと同一)
(require 'origami) ;; (makunbound 'origami-view-mode-map) (define-minor-mode origami-view-mode "TABにorigamiの折畳みを割り当てる" nil "折紙" '(("\C-i" . origami-cycle)) (or origami-mode (origami-mode 1))) (defun origami-cycle (recursive) "origamiの機能をorg風にまとめる" (interactive "P") (call-interactively (if recursive 'origami-toggle-all-nodes 'origami-toggle-node))) (defun view-mode-hook--origami () (when (memq major-mode (mapcar 'car origami-parser-alist)) (origami-view-mode (if view-mode 1 -1)))) (add-hook 'view-mode-hook 'view-mode-hook--origami)
実行方法
$ wget http://rubikitch.com/f/150103055834.origami.el $ emacs -Q -f package-initialize -l 150103055834.origami.el
Fig1: view-modeにてC-u C-iで折畳み
Fig2: C-iで展開
本サイト内の関連パッケージ
- org - Outline-based notes management and organizer
- yafolding - Yet another folding extension for Emacs
- outline-magic - outline mode extensions for Emacs
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。