Next: , Previous: , Up: Text   [Contents][Index]


32.21 レジスター

レジスター(register)とは、Emacs内の編集においてさまざまな異なる種類の値を保持できる一種の変数です。レジスターはそれぞれ1文字で命名されます。すべてのASCII文字、およびそれらのメタ修飾された変種(ただしC-gは例外)をレジスターの命名に使用できます。したがって利用可能なレジスター数は255になります。Emacs Lispではレジスターは自身の名前となるその文字により指定されます。

Variable: register-alist

この変数は要素が(name .contents)という形式のalist。使用中のEmacsレジスターごとに通常は1つの要素が存在する。

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

レジスターのcontentsには、いくつかのタイプがある:

数字

数字はそれ自身を意味する。insert-registerはレジスター内の数字を探して10進数に変換する。

マーカー

マーカーはジャンプ先のバッファー位置を表す。

文字列

文字列の場合はレジスター内に保存されたテキスト。

矩形(rectangle)

矩形は文字列のリストを表す。

(window-configuration position)

これは1つのフレームにリストアされるウィンドウ構成、およびカレントバッファー内のジャンプ先の位置を表す。

(frame-configuration position)

これはリストア用のフレーム構成とカレントバッファー内のジャンプ先の位置。

(file filename)

これはvisitするファイルを表し、この値にジャンプすることによりファイルfilenameをvisitする。

(file-query filename position)

これはvisitするファイルとファイル内の位置を表す。この値にジャンプすることによりファイルfilenameをvisitしてバッファー位置positionに移動する。このタイプの位置をリストアすると、まずユーザーにたいして確認を求める。

このセクションの関数は特に明記しない限り予期せぬ値をリターンします。

Function: get-register reg

この関数はレジスターregのコンテンツ、コンテンツがなければnilをリターンする。

Function: set-register reg value

この関数はレジスターregのコンテンツにvalueをセットする。レジスターには任意の値をセットできるが、その他のレジスター関数は特定のデータ型を期待する。リターン値はvalue

Command: view-register reg

このコマンドはレジスターregに何が含まれているかを表示する。

Command: insert-register reg &optional beforep

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

このコマンドは通常は挿入したテキストの前にポイント、後にマークを配置する。しかしオプションの第2引数beforepが非nilならマークを前、ポイントを後に配置する。インタラクティブな呼び出しでは、プレフィクス引数を与えることにより2つ目の引数beforepnilを渡すことができる。

このコマンドはインタラクティブに呼び出された際には、デフォルトではテキストの後にポイントを配置して、プレフィクス引数を与えるとこの反対の振る舞いを行う。

レジスターに矩形が含まれる場合には、その矩形はポイントの左上隅に挿入される。これはそのテキストがカレント行と、その下に続く行に挿入されることを意味する。

レジスターが保存されたテキスト(文字列)または矩形(リスク)以外の何かを含む場合には、現在のところは役に立つようなことは起きない。これは将来変更されるかもしれない。

Function: register-read-with-preview prompt

この関数はprompt、およびもしかしたら既存レジスターとそのコンテンツをプレビューしてレジスターの名前を読み取ってレジスター名をリターンする。このプレビューはユーザーオプションregister-preview-delayregister-alistがいずれも非nilなら、register-preview-delayで指定された遅延の後に一時ウィンドウ内に表示される。このプレビューはユーザーが(たとえばヘルプ文字のタイプにより)ヘルプを要求した場合にも表示される。レジスター名を読み取るンタラクティブな関数には、この関数の使用を推奨する。