本節では、指定されたバッファでアンドゥ情報の記録をオン/オフする 方法について述べます。 また、アンドゥリストが大きくなりすぎないように 自動的に切り詰める方法についても説明します。
新たに作成されたバッファのアンドゥ情報の記録は普通は始めオンですが、
バッファ名が空白で始まる場合は最初からオフです。
つぎの2つの関数を使うか、読者自身がbuffer-undo-list
に設定すれば、
アンドゥ記録を明示的にオン/オフできます。
このコマンドは、バッファbuffer-or-nameでのアンドゥ記録をオンにし、 以降の変更を取り消せるようにする。 引数を指定しないと、カレントバッファを使う。 当該バッファでアンドゥ記録がすでにオンであると、 この関数はなにもしない。
nil
を返す。対話的に呼ばれると、buffer-or-nameはカレントバッファである。 他のバッファを指定できない。
— コマンド: buffer-flush-undo &optional buffer
この関数はバッファbufferのアンドゥリストを破棄し、 以降のアンドゥ情報の記録をオフにする。 その結果、これ以前の変更も以降の変更も取り消すことはできない。 bufferのアンドゥリストがすでにオフであると、 この関数にはなんの効果もない。
この関数は
nil
を返す。名前
buffer-flush-undo
は廃れているとはみなさないが、 好ましい名前はbuffer-disable-undo
である。
編集を続けるにしたがってアンドゥリストはどんどん長くなります。
これらがメモリを使い尽くさないように、
読者が設定した上限サイズにガベッジコレクションが切り詰めます。
(この目的においてアンドゥリストの『サイズ』は、
リストを構成するコンスセルの個数と削除された文字列の和である。)
2つの変数undo-limit
とundo-strong-limit
は、
許容できるサイズの範囲を制御します。