前: RegFiles, 上: Registers


8.7 ブックマーク

ブックマーク(bookmarks)とは、 移動先の位置を記録しておくためのレジスタのようなものです。 レジスタと違って、長い名前を付けることができて、 自動的につぎのEmacsセッションに引き継がれます。 ブックマークの典型的な使い方は、 各ファイルの『どこを読んでいるか』を記録しておくことです。

C-x r m <RET>
訪問先のファイルのポイント位置にブックマークを設定する。
C-x r m bookmark <RET>
ポイント位置に、bookmarkという名前のブックマークを設定する (bookmark-set)。
C-x r b bookmark <RET>
名前がbookmarkであるブックマークに移動する (bookmark-jump)。
C-x r l
すべてのブックマークを一覧表示する(list-bookmarks)。
M-x bookmark-save
現在のすべてのブックマークの値を デフォルトのブックマークファイルに保存する。

ブックマークの典型的な使い方は、 各ファイルごとに現在のポイント位置を保存しておくことです。 ブックマークを設定するコマンドC-x r mは、 訪問先のファイルの名前をブックマーク名のデフォルトとして使います。 ブックマークが指すファイルをもとにブックマークの名前を付ければ、 C-x r bで任意のファイルを再訪問して、 同時にブックマーク位置に移動するという操作を楽に行えます。

設定したすべてのブックマークの一覧を別のバッファに表示するには、 C-x r llist-bookmarks)と打ちます。 そのバッファに切り替えれば、ブックマークの定義を編集したり、 ブックマークに注記を付けたりできます。 このバッファで使える特別な編集コマンドについての情報を得るには、 このバッファでC-h mと打ちます。

内容を変更したブックマークがある場合、Emacsを終了する時点で、 Emacsはブックマークの値をデフォルトの ブックマークファイル~/.emacs.bmkに保存するかどうか聞いてきます。 M-x bookmark-saveコマンドを使っても、 変更したブックマークをいつでも保存できます。 ブックマークコマンドは、個人のデフォルトのブックマークファイルを 自動的に読み込みます。 これらの保存と読み込みによって、 ブックマークの内容をつぎのEmacsセッションに引き継げるのです。

変数bookmark-save-flagに1を設定しておくと、 ブックマークを設定する各コマンドは、ブックマークの保存も行います。 こうしておけば、Emacsがクラッシュした場合でも、 ブックマークデータを失わなくてすみます。 (この変数の値が数値であれば、 ブックマークを何回変更したら保存するという意味。)

ブックマークの位置情報は、その周辺の文脈情報と一緒に保存されるので、 ファイルが少し変更されていたとしても、 bookmark-jumpは正しい位置をみつけだせます。 変数bookmark-search-sizeで、 ブックマーク位置の前後何文字分の内容を保存するかを指定します。

ブックマークを用いるコマンドには、以下のものもあります。

M-x bookmark-load <RET> filename <RET>
ブックマークデータのリストを収めたfilenameという名前の ファイルをロードする。 デフォルトのブックマークファイル以外の ブックマークデータを収めたファイルに対しても、 コマンドbookmark-writeと同じく、このコマンドを使える。
M-x bookmark-write <RET> filename <RET>
現在設定されているブックマークデータを ファイルfilenameに保存する。
M-x bookmark-delete <RET> bookmark <RET>
bookmarkという名前のブックマークを削除する。
M-x bookmark-insert-location <RET> bookmark <RET>
ブックマークbookmarkが指しているファイルの名前を バッファに挿入する。
M-x bookmark-insert <RET> bookmark <RET>
ブックマークbookmarkが指すファイルの内容を バッファに挿入する。