Emacsがバックアップファイルを作成する際、そのファイル名は通常、編集中のファイル名に‘~’を付加して構成されます。したがって、eval.cのバックアップファイルはeval.c~となります。
アクセス制御によってEmacsが通常の名称でバックアップファイルを書き込めなくなった場合、バックアップファイルは~/.emacs.d/%backup%~として書き込まれます。このようなファイルは1つしか存在できないため、直近に作成されたバックアップのみが利用可能となります。
Emacsでは番号付きバックアップファイルを作成することもできます。番号付きバックアップファイル名には、元のファイル名の後に‘.~’、番号、そしてもう一つの‘~’が含まれます。したがって、eval.cのバックアップファイルはeval.c.~1~、eval.c.~2~というように、eval.c.~259~以降の名前まで順に付けられます。
変数 version-control
は、単一のバックアップファイルを作成するか、番号付きの複数のバックアップファイルを作成するかを決定します。取り得る値は以下の通りです:
nilすでに番号付きバックアップが存在するファイルについては、番号付きバックアップを作成してください。そうでない場合は、単一のバックアップを作成してください。これがデフォルトの動作です。
t番号付きのバックアップを作成してください。
never番号付きのバックアップは絶対に作成せず、常に単一のバックアップを作成してください。
この変数を設定する一般的な方法は、initファイルやカスタマイズバッファを通じてグローバルに設定することです。ただし、version-controlを個別のバッファでローカルに設定することで、そのバッファのファイルに対するバックアップ作成を制御することも可能です(ローカル変数を参照)。Rmailモードなどの一部のモードでは、この変数が設定されます。また、特定のファイルを開くたびに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 が通常行うバックアップファイル名の生成方法を上書きできます。