Org-modeといえば、そもそもアウトラインモードのひとつなわけですが、 今回は、そんなアウトラインモードといっしょに使うと便利な reveal-mode を紹介します。

reveal-modeとは、カーソルの移動にしたがい、自動的に本文の表示・非表示を切り替えてくれるモードです。org-mode専用ではなく、アウトライン系のモードなら動作するっぽい。

アウトラインなテキストとは

では、そもそもアウトラインとはなんぞや、という話から一応しておきましょう。

org-modeでアウトラインなテキストといえば、こんなスタイルかと思います。

* 見出し1
  * 小見出し1-1
    本文
  * 小見出し1-2
    本文
* 見出し2
  * 小見出し2-1
    本文
  * 小見出し2-2
    本文

階層化された見出しと本文から構成されています。この例では、 org-indent-mode を有効にしているので見た目が少し違いますが、実体としては、 outline-mode からの派生は似たような感じかと思います。 (org-indent-modeに興味があるかたは、過去の記事 org-modeの表示スタイル をご覧ください)

アウトラインモードらしく、ここで、 Shift + TAB を押すことで、見出しのみの表示へ変更できます。

* 見出し1...
* 見出し2...

とか

* 見出し1...
  * 小見出し1-1...
  * 小見出し1-2...
* 見出し2...
  * 小見出し2-1...
  * 小見出し2-2...

のように切り替わります。

このとき、各見出しへカーソルを移動させて、 TAB キーなどのショートカットを押せば、本文の表示・非表示をトグルできますね。おなじみの操作かと思います。

reveal-mode

今回、紹介したい reveal-mode は、こういうアウトラインモードにちょこっとだけ便利な機能を追加してくれます。

使いかたは簡単で、 M-x reveal-mode を実行するだけ。

あとは、次のような見出しの表示中にカーソルを移動するだけ。

* 見出し1...
* 見出し2...

例えば、見出し1の行の末尾 ... にカーソルを移動させると・・・

* 見出し1
  * 小見出し1-1...
  * 小見出し1-2... 
* 見出し2...

ぱっと自動で、見出し1の中身が表示されます。 さらに、小見出し1-1の末尾に移動すれば、

* 見出し1
  * 小見出し1-1
    本文
  * 小見出し1-2... 
* 見出し2...

本文が自動的に表示されます。

ただ、それだけ・・・。

え!? なんだ、それだったら、タブキーを手動で押せばいいやん、という気もする。

いやいや。

こいつのいいのは、カーソルを見出し1の外へ移動させると、見出し1の中身は再び非表示に戻るところ。 この挙動が、なかなかキビキビしていて気持ちいいのです。

手動で開いておいた見出しは対象外なので、意外と細かい使いかたもできそうです。

残念なのは、 ... へカーソルを移動しないと反応してくれない点です。 素直に見出しの行のどこでも、カーソルがあれば、表示してくれたほうが、便利のような気がします。

いまどきのEmacsなら標準でインストールされていると思いますので、興味があれば、どうぞお試しください。