Next: , Previous: Substitution, Up: Text


31.21 レジスタ

レジスタは、Emacsの編集においてさまざまな種類の値を保持できる変数の一種です。 各レジスタには1文字の名前が付いています。 すべてのASCII文字とそれらのメタ変種(ただしC-gを除く)を レジスタの名前に使えます。 したがって、255個のレジスタを使えます。 Emacs Lispでは、レジスタ名でレジスタを区別します。

— Variable: register-alist

この変数は、(name . contents)の形の要素の連想リストである。 通常、使用中のEmacsの各レジスタに対して1つの要素がある。

オブジェクトnameは、レジスタを識別する文字(整数)である。

レジスタの内容(contents)に可能な型はいくつかあります。

数そのものを表す。 insert-registerがレジスタ内で数をみつけると10進数に変換する。
マーカ
マーカはジャンプ先のバッファ内位置を表す。
文字列
文字列はレジスタに保存されたテキストである。
矩形領域
矩形領域は文字列のリストで表現される。
(window-configuration position)
これは、1つのフレームに復元するウィンドウ構成と カレントバッファでのポイントの移動先を表す。
(frame-configuration position)
これは、復元するフレーム構成とカレントバッファでのポイントの移動先を表す。
(file filename)
訪問すべきファイルを表す。 この値にジャンプするとファイルfilenameを訪問する。
(file-query filename position)
これは、訪問すべきファイルとその中での位置を表す。 この値にジャンプするとファイルfilenameを訪問し バッファ内位置positionへ移動する。 この種の位置を復元すると、まずユーザーに確認を取る。

本節の関数は、明記してない場合には予測できない値を返します。

— Function: get-register reg

この関数は、レジスタregの内容、 あるいは、内容がなければnilを返す。

— Function: set-register reg value

この関数は、レジスタregの内容をvalueとする。 レジスタには任意の値を設定できるが、他のレジスタ関数は 特定のデータ型を期待する。 戻り値はvalueである。

— コマンド: view-register reg

このコマンドは、レジスタregになにが入っているかを表示する。

— コマンド: insert-register reg &optional beforep

このコマンドはレジスタregの内容をカレントバッファに挿入する。

通常、このコマンドは挿入したテキストのまえにポイントを置き、 そのあとにマークを置く。 しかし、省略可能な2番目の引数beforepnil以外であると、 まえにマークを置きあとにポイントを置く。 この関数を対話的に呼び出すときに前置引数を指定すれば、 2番目の引数beforepnil以外を渡せる。

レジスタに矩形領域が含まれる場合、 ポイント位置に矩形領域の左上隅がくるように挿入される。 つまり、テキストは現在行とそのしたの連続する行に挿入される。

保存したテキスト(文字列)や矩形領域(リスト)以外がレジスタに入っていると、 現状では有用なことは起こらない。 将来これは変更されるであろう。