[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacsのレジスタ(registers)は、 あとで使うためにテキストやポイント位置を保存するための場所です。 テキストや矩形領域をレジスタにいったん保存すれば、 何度でもバッファにコピーできます。 また、レジスタに保存した位置には何度でもポイントを移動できます。
各レジスタには1文字の名前が付いています。 レジスタには、テキストの一部、矩形領域、位置、 ウィンドウの構成情報、ファイル名を保存できますが、 1度にはそのうちの1つしか保存できません。 レジスタに保存した内容は、そのレジスタに他のものを保存するまでは 保持され続けます。 レジスタrに何が入っているか調べるには、 M-x view-registerを使います。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
位置を保存するとは、 あとで戻ってこられるようにバッファ中の位置を記録することです。 保存した位置に移動すると、そのバッファに切り替えてから ポイントをその位置に移動します。
point-to-register
)。jump-to-register
)。ポイントの現在位置をレジスタに保存するには、名前rを選んでから、 C-x r SPC rと打ちます。 他のものを保存するまで、 レジスタrはこうして保存した位置を保持し続けます。
コマンドC-x r j rは、 レジスタrに記録した位置にポイントを移動します。 レジスタは変わらず、同じ位置を記録し続けます。 何度でも保存した位置に移動できます。
C-x r jを使って保存位置に移動しようとしたとき、 その対象となるバッファがすでに消去されていた場合には、 C-x r jは同じファイルを訪問するバッファを作成し直そうとします。 もちろん、これはファイルを訪問したバッファに対してのみ働きます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
テキストの同じ部分のコピーを頻繁に挿入する場合、 キルリングからヤンクするのは便利ではないでしょう。 というのは、キルするごとに、必要な部分がリングの下方に徐々に 移動してしまうからです。 別の手段としては、レジスタにテキストを保存しておき、 レジスタから取り込むという方法があります。
copy-to-register
)。insert-register
)。C-x r s rは、リージョンのテキストのコピーを rという名前のレジスタに保存します。 C-x r s rに数引数を指定すると、 保存すると同時にバッファからテキストを削除します。
C-x r i rはレジスタrからテキストをバッファに挿入します。 通常、テキストの直前にポイントを置き、直後にマークを置きます。 しかし、数引数(C-u)を指定すると、 テキストの直後にポイントを置き、直前にマークを置きます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
レジスタには、連続したテキスト以外にも、矩形領域を保持できます。 矩形領域は、文字列のリストとして表されます。 バッファ内での矩形領域の指定方法に関する基礎情報については、 See 節 H.11 矩形領域 (2005/03/20)。
copy-rectangle-to-register
)。 数引数を指定すると、コピー後に矩形領域を削除する。insert-register
)。C-x r i rコマンドは、レジスタにテキストが入っていれば、 そのテキストの文字列を挿入しますし、 矩形領域があれば矩形領域を挿入します。
コマンドsort-columns
も参照してください。 このコマンドは矩形領域をソートすると考えられます。 See 節 AD.19 テキストのソート (2005/05/07)。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
選択したフレームのウィンドウ構成をレジスタに保存したり、 すべてのフレームのすべてのウィンドウ構成を保存したりできて、 しかも、あとでその構成に戻せます。
window-configuration-to-register
)。frame-configuration-to-register
)。ウィンドウやフレームの構成をもとに戻すには、 C-x r j rを使います。 これは、カーソル位置を復元するコマンドと同じです。 フレームの構成を復元すると、 構成情報に含まれていない既存のフレームは隠れた状態になります。 これらのフレームを削除したければ、C-u C-x r j rを使います。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
レジスタに数値を保存しておき、数値を10進数でバッファに挿入してから 数値を増やすコマンドがあります。 これらのコマンドは、キーボードマクロで役立ちます (see 節 M. キーボードマクロ (2004/01/12))。
number-to-register
)。increment-register
)。C-x r gは、レジスタの数値以外の内容をバッファに挿入するために 使うコマンドと同じです。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
特定のファイル名を頻繁に訪問する場合には、 これらの名前をレジスタに置いておくと、 より簡単にファイルを訪問できます。 ファイル名をレジスタに置くLispコードをつぎに示します。
(set-register ?r '(file . name)) |
たとえば、
(set-register ?z '(file . "/gd/gnu/emacs/19.0/src/ChangeLog")) |
とすると、上に示したファイル名をレジスタ`z'に保存します。
レジスタrに入れた名前のファイルを訪問するには、 C-x r j rと打ちます。 (このコマンドは、保存位置に移動したり フレーム構成を復元するために使うコマンドと同じ。)
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
ブックマーク(bookmarks)とは、 移動先の位置を記録しておくためのレジスタのようなものです。 レジスタと違って、長い名前を付けることができて、 自動的につぎのEmacsセッションに引き継がれます。 ブックマークの典型的な使い方は、 各ファイルの『どこを読んでいるか』を記録しておくことです。
bookmark-set
)。
bookmark-jump
)。
list-bookmarks
)。
ブックマークの典型的な使い方は、 各ファイルごとに現在のポイント位置を保存しておくことです。 ブックマークを設定するコマンドC-x r mは、 訪問先のファイルの名前をブックマーク名のデフォルトとして使います。 ブックマークが指すファイルをもとにブックマークの名前を付ければ、 C-x r bで任意のファイルを再訪問して、 同時にブックマーク位置に移動するという操作を楽に行えます。
設定したすべてのブックマークの一覧を別のバッファに表示するには、 C-x r l(list-bookmarks
)と打ちます。 そのバッファに切り替えれば、ブックマークの定義を編集したり、 ブックマークに注記を付けたりできます。 このバッファで使える特別な編集コマンドについての情報を得るには、 このバッファでC-h mと打ちます。
内容を変更したブックマークがある場合、Emacsを終了する時点で、 Emacsはブックマークの値をデフォルトの ブックマークファイル`~/.emacs.bmk'に保存するかどうか聞いてきます。 M-x bookmark-saveコマンドを使っても、 変更したブックマークをいつでも保存できます。 ブックマークコマンドは、個人のデフォルトのブックマークファイルを 自動的に読み込みます。 これらの保存と読み込みによって、 ブックマークの内容をつぎのEmacsセッションに引き継げるのです。
変数bookmark-save-flag
に1を設定しておくと、 ブックマークを設定する各コマンドは、ブックマークの保存も行います。 こうしておけば、Emacsがクラッシュした場合でも、 ブックマークデータを失わなくてすみます。 (この変数の値が数値であれば、 ブックマークを何回変更したら保存するという意味。)
ブックマークの位置情報は、その周辺の文脈情報と一緒に保存されるので、 ファイルが少し変更されていたとしても、 bookmark-jump
は正しい位置をみつけだせます。 変数bookmark-search-size
で、 ブックマーク位置の前後何文字分の内容を保存するかを指定します。
ブックマークを用いるコマンドには、以下のものもあります。
bookmark-write
と同じく、このコマンドを使える。
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |