次: , 前: Backup Files, 上: Backup Files


25.1.1 バックアップファイルの作成

— 機能: backup-buffer

この関数は、必要ならば、カレントバッファで訪問しているファイルの バックアップを作成する。 バッファを初めて保存するまえにsave-bufferがこの関数を呼び出す。

— 変数: buffer-backed-up

このバッファローカルな変数は、 当該バッファのもとで当該バッファのファイルの バックアップを作成済みかどうかを表す。 nil以外であれば、バックアップファイルは作成済みであることを表す。 さもなければ、(バックアップがオンになっていれば)つぎに保存するときに ファイルのバックアップを作成するべきであることを表す。 これは恒久的にバッファローカルであり、 kill-local-variablesによって変更されない。

— ユーザオプション: make-backup-files

この変数は、バックアップファイルを作成するかどうかを決定する。 nil以外であると、backup-inhibitednilならば(下記参照) Emacsは初めて保存するときに各ファイルのバックアップを作成する。

つぎの例は、rmailのバッファでのみ変数make-backup-filesを 変更する方法である。 この変数をnilにすると、 Emacsはそれらのファイルのバックアップを作成しなくなり、 ディスクスペースの節約になる。 (このコードを読者のファイル.emacsに入れてもよい。)

          (add-hook 'rmail-mode-hook
                    (function (lambda ()
                                (make-local-variable
                                 'make-backup-files)
                                (setq make-backup-files nil))))
     
— 変数: backup-enable-predicate

この変数の値は、ファイルをバックアップすべきかどうかを決定する ために特定の場面で呼び出される関数である。 当該関数は、調べるべきファイルの名前を引数にとる。 当該関数がnilを返すと、当該ファイルのバックアップは禁止である。 さもなければ、本節の他の変数が、 バックアップするかどうかやバックアップ方法を指定する。

デフォルト値はつぎのとおりである。

          (lambda (name)
            (or (< (length name) 5)
                (not (string-equal "/tmp/"
                                   (substring name 0 5)))))
     
— 変数: backup-inhibited

この変数がnil以外であると、バックアップを禁止する。 この変数は、訪問したファイルの名前に対するbackup-enable-predicateの 検査結果を記録している。 訪問したファイルに基づいてバックアップを禁止する 他の機構でもこの変数を使える。 たとえば、VCはこの変数にnil以外を設定し、 版管理システムで管理されているファイルに対してバックアップの作成を禁止する。

これは恒久的にバッファローカルであり、 メジャーモードを変更しても値は失われない。 メジャーモードはこの変数に設定するべきではなく、 かわりに、make-backup-filesに設定するべきである。