Previous: , Up: Buffers   [Contents][Index]


26.13 The Buffer Gap

Emacsのバッファーは、挿入と削除を高速にするために、不可視のギャップ(gap)を使用して実装されています。挿入はギャップ部分を充填し、削除はギャップを追加することにより機能します。もちろん、これは最初にギャップを挿入もしくは削除の部位(locus)に移動しなければならないことを意味します。Emacsは、ユーザーが挿入、または削除を試みたときだけ、ギャップを移動します。大きなバッファー内の遠く離れた位置で編集した後、他の箇所での最初の編集コマンドに無視できない遅延が発生する場合があるのは、これが理由です。

このメカニズムは暗に機能するものであり、Lispコードはギャップのカレント位置に影響されるべきでは決してありませんが、以下の関数はギャップ状態に関する情報の取得に利用できます。

Function: gap-position

この関数は、カレントバッファー内のギャップのカレント位置をリターンする。

Function: gap-size

この関数は、カレントバッファー内のギャップのサイズをリターンする。