^Lってなあに?
あなたはEmacsを使っていて
^L
という文字を見たことがありますか?
これは 改ページ文字 といい、
Ctrl+L
に相当する文字です。
ワープロソフトでは、
強制的に次のページにする機能はありますが、
テキストエディタでは
あまり馴染みがないかもしれません。
改ページ文字の入力方法は
C-q C-l
です。
けれども、
プログラマはしばしば
改ページ文字を使っています。
この文字で
ファイルを分割するのが
目的です。
改ページ文字を使う理由
あなたは、
積極的に
改ページ文字を使うべきです。
以下の理由です。
- 入力が簡単
- ページ単位に移動するコマンドがある
- 今のページをナローイングできる
- 改ページを使ったアウトラインが実現可能!!
- しかも特定の文字列を含むページのみを選択可能
- ナローイングしながら前後のページに移動できる
- 改ページ文字はソースコードでも文書でもあらゆるテキストファイルで使える
- 解析が容易
- org-mode不要
- 動作が軽い
隠れた豪傑page-ext.el
実はEmacsには
改ページ文字を活用する
Emacs Lispが標準添付されています。
知名度はとても低くて
地味なのですが、
使ってみると便利でした。
標準添付にもかかわらず、
使うためには
(require 'page-ext)
という設定が必要なのも
知られてない理由のひとつでしょう。
まずは
上記の設定を加えましょう。
標準でもちょっとだけ使える
実はpage-ext.elなしでも
デフォルトのEmacsで
キーに割り当てられている
ページ移動コマンドがあります。
- C-x [
- backward-page (前ページへ移動)
- C-x ]
- forward-page (次ページへ移動)
- C-x l
- count-lines-page (現在のページの行数を数える)
- C-x n p
- narrow-to-page (現在のページにナローイング)
これだとただ単に
ページを移動したり
ページ数を数えてるに過ぎません。
page-ext.elでパワーアップ
page-extを使うと、
ページを扱うコマンドが
パワーアップします。
- C-x C-p C-a
- add-new-page (新しいページを追加する)
- C-x C-p C-d
- pages-directory (ページごとにアウトラインを作成する!)
- C-x C-p C-l
- set-page-delimiter (ページ区切りの正規表現を設定する)
- C-x C-p RET
- mark-page (現在のページをマークする)
- C-x C-p C-n
- next-page (次のページへナローイングしながら移動)
- C-x C-p C-p
- previous-page (前のページへナローイングしながら移動)
- C-x C-p C-s
- search-pages (現在位置から正規表現検索し、ナローイング表示)
- C-x C-p d
- pages-directory-for-addresses (アドレス帳を表示)
- C-x C-p s
- sort-pages-buffer (ページをソートする)
簡易アウトラインプロセッサ!
特筆すべきは
C-x C-p C-d
です。
このコマンドは
改ページで区切られたテキストに対し、
改ページの次の行を
見出しとした アウトライン を
作成してくれます。
コマンド実行直後に
アウトラインのバッファに
切り替えてくれますので、
行きたい行を選択して、
C-c C-cを押せば
そのページへ移動できます。
しかも、
移動したら
該当ページがナローイング
された状態です。
page-ext.el自身が
改ページ区切りのテキストですので、
実際に使ってみましょう。
M-x find-library page-ext
でpage-ext.elを開きます。
Fig1: C-x C-p C-dを実行
Fig2: C-c C-cを押したらそのページへ移動
Fig3: C-u C-x C-p C-d defun RETで関数定義を含むページのみを候補に
まるでdiredで
ファイルを見るかのように
改ページ区切りのテキストを
自然に分割して
見られるようになるのです。
さらに、
C-x C-p C-pと
C-x C-p C-nで
前後のページに
ナローイングしながら
移動できます。
なかなか便利な機能だと
思いませんか?
まとめ
このように、改ページ文字は
- C-q C-l で入力でき
- C-x C-p C-dで検索機能付きアウトライン表示が可能
です。
1つのファイル中に
複数のセクションを
入れたファイルを作成したいが、
org-modeを使うのも大袈裟だ、
そう思ったのならば、
改ページ区切りのテキストを
作成してみませんか?
org-modeは
標準添付ですが
重いという欠点があります。
改ページ区切りであれば、
ソースコード含め
あらゆるテキストファイルで適用でき、
よりお手軽です。
階層構造が不要な
区切りテキストですから、
Emacs Lispでも他言語でも
簡単に解析できます。
あなたも積極的に
改ページ区切りのテキストを
活用してみましょう。
独自ファイルフォーマットを考えるならば、
まずは改ページ区切りのテキストファイルを
考慮してみてください。
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。