Next: Global Mark Ring, Previous: Using Region, Up: Mark [Contents][Index]
各バッファーは、マークリング(mark ring)の中に、以前のマークの位置を記録しています。マークをセットするコマンドは、古いマークをこのリングにpushします。マークリングの1つの使い方として、後で戻りたい場所を記録させる使い方があります。
マークをアクティブにせずにマークをセットしてから、マークリングにpushします。
マークがあった場所にポイントを移動し、マークリングから1つ前のマークを復元します。
コマンドC-SPC
C-SPCは、後で戻ってきたい位置をマークするときに便利です。これは現在の位置をマークを(Emacsがリージョンをハイライト表示してしまう)アクティブにすることなく、マークリングにpushします。実際にこれはC-SPC
(set-mark-command
)を連続して2回呼び出しています。最初のC-SPCはマークをセットし、2回目のC-SPCはそれを非アクティブにしています(Transient
Markモードがオフの場合、C-SPC C-SPCは一時的にTransient
Markモードを有効にします。Disabled Transient Markを参照してください)。
マークした位置に戻るには、C-u
C-SPCのようにプレフィクス引数を指定して、set-mark-command
を使います。これはマークがあった場所にポイントを移動して、もしマークがアクティブのときは非アクティブにします。C-u
C-SPCを連続して呼び出すと、マークリングに保存された前の位置へジャンプしていきます。この方法で移動した位置の情報は失われません。それらはリングの最後に移動します。
set-mark-command-repeat-pop
を非nil
にセットすると、C-u
C-SPCの後に続けて、C-u
C-SPCではなく、C-SPCでマークリングを巡回できます。デフォルトではset-mark-command-repeat-pop
はnil
です。
各バッファーは自身のマークリングを持ちます。すべての編集コマンドは現在のバッファーのマークリングを使います。特にC-u C-SPCは常に同じバッファーに留まります。
変数mark-ring-max
は、マークリングに保持する最大のエントリー数を指定します。デフォルトは16エントリーです。もしエントリー数が最大の場合、他のエントリーをpushするとリストの一番古いものが捨てられます。C-u
C-SPCを繰り返すと、リングの現在位置を巡回します。
もし何度も同じ場所に戻りたいときは、マークリングでは不十分でしょう。そのような場合は後で使うために、その位置をレジスターに記録できます(Position Registersを参照してください)。