リージョンを設定すること以外に,マークはあとでもどる可能性のある位置を
覚えておくことにも使えます.これを使いやすくするために,Emacsは前に置い
た16箇所のマークの位置をマークリングに記録しています.マークを設定
するコマンドの多くは,古いマークをこのリングにプッシュします.マークをつ
けた位置に戻るには,C-u C-SPCコマンド(またはC-u C-@コ
マンド)を使用します.これはset-mark-command
コマンドに数引数を与え
たものです.このコマンドは,ポイントをマークのあった位置に移動し,マーク
リングからマークを復活します.したがって,このコマンドを繰り返し使用する
と,次々とリングに記録されたマークの位置にポイントを移していきます.マー
クは再びリングの後ろに加えられるのでマークが失われることはありません.
おのおののバッファは独自のマークリングを持っています.編集コマンドは, すべてカレントバッファのマークリングを使用します.特にC-u C-SPC コマンドでは,いつも同じバッファにとどまります.
M-< (beginning-of-buffer
)コマンドのように長い距離を移動で
きるコマンドの多くは,コマンドの実行前にまずマークを設定し,マークリング
にそれまでのマークを保存してから動作します.こうしておけば,あとで簡単に
もどることができます.探索コマンドは,実際にポイントを動かしたときだけ,
元の位置にマークを置きます.コマンドがいつマークを設定したかは,エコー領
域に`Mark Set'と表示されることからわかります.
変数mark-ring-max
は,マークリングに蓄えられるマークの最大数です.
マークリングがいっぱいのときに,さらにマークがプッシュされると,リングの
最も昔のマークが捨てられます.C-u C-SPCコマンドを繰り返し実
行すると,そのときリングにあるだけの数のマークが循環します.
変数mark-ring
が,マークリングを持っています.これはマークの実体
が,最後のマークが先頭になるように並べたリストです.この変数はすべてのバッ
ファでローカルです.
削除はテキストを消し,それを削除リングにコピーすることを意 味します.この削除リングからはテキストをヤンク(yank---引き出す--- 削除リングのエントリをバッファに挿入すること)できます.他のシステムでは, これらの操作をカットとペーストというのが一般的になってきました.
Emacsでテキストを移動したりコピーしたりする最も一般的な方法は,テキス トを削除して,そのあと1箇所以上の場所でそれをヤンクすることです.この方 法だと,いましがた削除されたばかりのテキストはすべて記憶されているので安 全です.また構文の単位で削除するための多数のコマンドが,それらの単位を動 かすときにも使えるので用途が広いともいえます.特別な目的でテキストをコピー する方法は他にもあります.
Emacsには削除リングが1つしかないので,あるバッファでテキストを削除し, 別のバッファでそれをヤンクすることができます.