Org-modeの長いファイルを編集するときはインダイレクトバッファーが便利

インダイレクトバッファーというのはファイルはひとつだけれども、編集中の状態(カーソルの位置やモードなど)は独立したバッファーのことです。バッファ選択画面でそのバッファーを選べばすぐにその箇所の編集を再開できます。

org-modeでタスク管理を行っていると一つのファイルのサイズが大きくなりがちで、また、ファイル内を行ったり来たりすることが多くなります。インクリメンタルサーチとかツリーの移動やマーク位置を遡るとかいった方法で対処していましたが、ふとインダイレクトバッファーのことを思い出して使ってみたところ、ようやくその便利さに気付いたという次第です。

Emacsの標準機能に、make-indirect-bufferがあります。

M-x make-indirect-buffer RET base-buffer RET indirect-name RET

ベースバッファーbase-bufferの、インダイレクトバッファーindirect-nameを作成します。

M-x clone-indirect-buffer RET

カレントバッファーの、インダイレクトバッファーを作成します。

C-x 4 c

カレントバッファーのインダイレクトバッファーを作成して、それを別のウィンドウで選択します(clone-indirect-buffer-other-window)。

引用元:GNU Emacs Manual(Japanese Translation): Indirect Buffers

それに加えて、org-modeには

M-x org-tree-to-indirect-buffer (C-c C-x b)

があり、これはインダイレクトバッファーを開くと同時にそのツリーをナローイングしてくれるという大変便利な機能です。

以前、異なるバッファで編集できるよう分割したファイルをインクルードするorg-modeの機能を紹介したことがあるのですが、このインダイレクトバッファーを使ったほうが断然お手軽です。