Next: , Previous: , Up: ファイルの保存   [Contents][Index]


19.3.2 バックアップファイル

ほとんどのオペレーティングシステムでは、ファイルを書き換えるとファイルに入っていたそれまでの記録は、自動的に破棄されます。したがって、Emacsでファイルを保存すると、ファイルの古い内容は捨てられます。しかし実際に保存する前に、Emacsが慎重に古い内容をバックアップ(backup)ファイルと呼ばれる別のファイルにコピーすれば、古い内容は失われません。

Emacsは最初にバッファーからファイルに保存されたときだけ、バックアップファイルを作成します。その後ファイルを何回保存しようと、バックアップは変更されません。しかしバッファーをkillしてから、そのファイルを再びvisitすると、新しいバックアップファイルが作成されます。

ほとんどのファイルにたいして、変数make-backup-filesはバックアップファイルを作るかを決定します。ほとんどのオペレーティングシステムでは、デフォルト値はtなので、Emacsはバックアップファイルを書き込みます。

バージョンコントロールシステム(version control system: バージョンコントロールを参照してください)で管理されているファイルにたいして、バックアップファイルを作るかは、変数vc-make-backup-filesにより決定されます。バージョンコントロールシステムに以前のバージョンがある場合、バックアップファイルを作るのは不必要なので、デフォルト値はnilです。 一般的なオプションを参照してください。

選択できるオプションは、Emacsにファイルごとに1つのバックアップを作らせる方法と、編集するファイルごとに番号がついた、一連のファイルを作る方法があります。単一または番号つきバックアップを参照してください。

変数backup-enable-predicateのデフォルト値は、一時的なファイルのために使われるディレクトリー(変数temporary-file-directoryまたはsmall-temporary-file-directoryで指定されます)のファイルは、バックアップしないような値になっています。

前に保存されたバッファーにたいしても、バッファーから他のバックアップファイルを作るよう、Emacsに明示的に指示することができます。バッファーをC-u C-x C-sで保存すると、この保存したバージョンが、次にバックアップするときのバックアップになります。C-u C-u C-x C-sはバッファーを保存しますが、最初に元のファイル内容を新しいバックアップファイルとします。C-u C-u C-u C-x C-sは両方を行います。まず前の内容でバックアップを作成し、次回に保存したときは、今回保存したものをバックアップにします。

変数backup-directory-alistをカスタマイズして、指定したパターンにマッチする特定のファイルにたいして、指定したディレクトリーにバックアップを作成させることができます。典型的な使い方は、要素("." . dir)を追加することにより、すべてのバックアップを絶対パスdirに作る方法です。異なるディレクトリーにある同じ名前のファイルによる、バックアップファイルの名前の衝突を避けるため、Emacsはバックアップファイルの名前を変更します。("." . ".~")を追加すると、これは元のファイルがあるディレクトリーに、非表示の.~というディレクトリーを作って、そこにバックアップを作成します。Emacsはバックアップを作るため、必要ならディレクトリーを作成します。