@kyanny's blog

My thoughts, my life. Views/opinions are my own.

.emacs.el に outline-minor-mode を有効化する設定を追加した

.emacs.el を小分けにして load で個別に読み込むのが最近の?トレンドのようだけど、管理すべきファイルが増えてしまって自分にはかえって難しいと思ったので、徐々に .emacs.el に設定をまとめなおしている。

でも .emacs.el が長くなると読みづらいのは確かなので、アウトライン表示ができるようにすれば解決するかな、と思ってすこし調べて、やってみた。

outline-mode はメジャーモードなのでそのまま使おうとすると emacs-lisp-mode のシンタックスハイライトが消えてしまう。そこで outline-minor-mode を使う。

まず、 .emacs.el だけで有効にするために、バッファローカル変数を使う。これはファイルの末尾に以下のようにかいておくといいらしい。

;; Local Variables: ***
;; mode:outline-minor ***
;; outline-regexp:";;;[ \t][*\f]+" ***
;; End: ***

おしりの *** はバッファローカル変数定義をするうえで必須の suffix らしい。外したらエラーがでた。空白の位置とかも、よくわからないので Outline の例に従った。

Local Variables, mode, End の三つが書いてあれば、ファイルを開きなおすと outline-minor-mode で開いてくれる。モードラインには Outl とか表示される。

次に、 outline-minor-mode にどこが見出しなのかを理解させる必要がある。それを outline-regexp で設定している。上の例だと、

;;; * Section

という書式が見つかればそこが見出しでそれ以外の部分が本文、という扱いになる。 \f はなんだっけ、よく知らない。けどこれを書いておくと ** Subsection という風に小見出しもいける。

ここまでしておいて、あとは .emacs.el のうち、適当な部分に ;;; * color-theme などと書いてやると、そこが見出しになる。