Emacsのバックアップファイル作成では、バックアップの名前は通常、編集されるファイル名の後ろに‘~’をつけて作成されます。したがってeval.cのバックアップファイルは、eval.c~になります。
アクセスコントロールによりEmacsが通常の名前でバックアップファイルを書き込めない場合、~/.emacs.d/%backup%~というバックアップファイルに書き込みます。この1つのファイルしか存在しないので、一番最近作られたバックアップだけが利用可能です。
Emacsは番号つきバックアップファイル(numbered backup files)を作ることもできます。番号つきバックアップファイルの名前は、元のファイル名の後ろに‘.~’と番号と‘~’をつけたものです。したがってeval.cのバックアップファイルは、eval.c.~1~、eval.c.~2~、...、eval.c.~259~、...となります。
変数version-control
は、単一のバックアップファイルを作るか、複数の番号つきバックアップファイルを作るかを決定します。有効な値は以下のとおりです:
nil
すでに番号つきバックアップのあるファイルにたいしては、番号つきバックアップを作ります。それ以外は単独のバックアップをつくります。これがデフォルトです。
t
番号つきバックアップを作ります。
never
番号つきバックアップをつくらず、常に単一のバックアップを作ります。
この変数をセットする通常の方法は、initファイルやcustomizationバッファーを通じて、グローバルにセットする方法です。しかし特定のバッファーにローカルにversion-control
をセットして、そのバッファーのバックアップ作成を制御することができます(ローカル変数を参照)。Rmailモードのようないくつかのモードは、この変数をセットします。特定のファイルをvisitするとき、常にEmacsにversion-control
をローカルにセットさせることもできます(ファイル内のローカル変数を参照)。
さまざまなGNUユーティリティーにたいして、何をすべきか指示する環境変数VERSION_CONTROL
をセットすると、Emacsも開始時にこの環境変数にしたがって、Lisp変数version-control
をセットします。環境変数の値が‘t’または‘numbered’のときは、version-control
はt
になります。値が‘nil’または‘existing’のときは、version-control
はnil
になります。もし‘never’または‘simple’のときは、version-control
はnever
になります。
変数make-backup-file-name-function
に適切なLisp関数をセットすることにより、Emacsがバックアップファイル名を作る通常の方法をオーバーライドできます。