多くのオペレーティングシステムでは、 ファイルを書き換えるとファイルに入っていたそれまでの記録は 自動的に破棄されます。 したがって、Emacsでファイルを保存すると、ファイルの古い内容は捨てられます。 しかし、実際に保存するまえに、古い内容をバックアップファイル と呼ばれる別のファイルにEmacsが注意深くコピーすれば、 古い内容は破棄されません。
ほとんどのファイルでは、
バックアップファイルを作るかどうかは
変数make-backup-files
で決まります。
多くのオペレーティングシステムでは、この変数のデフォルト値はt
であり、
Emacsはバックアップファイルを作ります。
版管理システム(see Version Control)が管理するファイルに対しては、
バックアップファイルを作るかどうかは
変数vc-make-backup-files
で決まります。
デフォルトはnil
です。
というのは、すべての古い版を版管理システムに保管してあるので、
バックアップファイルは冗長だからです。
See VC Workfile Handling。
変数backup-enable-predicate
のデフォルト値は、
/tmpにあるファイルのバックアップファイルを
作らないようにします。
Emacsでは、単一のバックアップファイルを保持することも、 編集した各ファイルごとに一連の番号付きバックアップファイルを 保持することもできます。
Emacsがファイルのバックアップファイルを作るのは、 バッファからそのファイルへ最初に保存したときだけです。 たとえ何度ファイルを保存したとしても、 そのバックアップファイルは、ファイルを訪問する以前の内容を保持し続けます。 通常これは、今の編集セッションを始める以前の内容を バックアップファイルが保持していることを意味します。 しかしながら、バッファを消去してから再度ファイルを訪問すると、 それ以降に保存するときには新たにバックアップファイルを作ります。
少なくとも一度は保存したとしても、 バッファからもう1つバックアップファイルを作るように明示的に 指示することもできます。 C-u C-x C-sでバッファを保存すると、 このとき保存した版は、バッファを再度保存するときには バックアップファイルになります。 C-u C-u C-x C-sもバッファを保存しますが、 まずファイルの古い内容をバックアップファイルにします。 C-u C-u C-u C-x C-s はその両方を行います。 ファイルの以前の内容からバックアップファイルを作り、 さらに、バッファを再度保存するとこのとき保存した版から もう1つバックアップファイルを作るように準備します。