この関数は、もしそれが適切ならカレントバッファーにvisitされているファイルのバックアップを作成する。これは最初のバッファー保存を行う前にsave-buffer
により呼び出される。
リネームによりバックアップが作成されると、リターン値は(modes extra-alist
backupname)という形式のコンスセルになる。ここでmodesはfile-modes
(アクセシビリティのテストを参照)でリターンされるような元ファイルのモードビット、extra-alistはfile-extended-attributes
(拡張されたファイル属性を参照)によりリターンされるような元ファイルの拡張属性を示すalist、そしてbackupnameはバックアップの名前。
他のすべての場合(コピーによりバックアップが作成された、またはバックアップが作成されなかった)には、この関数はnil
をリターンする。
このバッファーローカル変数は、そのバッファーのファイルがバッファーによりバックアップされたかどうかを明示する。非nil
ならバックアップファイルは書き込み済み、それ以外なら(バックアップが有効なら)次回保存時にファイルはバックアップされる。この変数は永続的にローカルでありkill-all-local-variables
はこれを変更しない。
この変数はバックアップファイルを作成するかどうかを決定する。非nil
なら、Emacsは初回保存時にすべてのファイルのバックアップを作成する
— ただしbackup-inhibited
がnil
の場合(以下参照)。
以下の例はRmailバッファーだけで変数make-backup-files
を変更して、それ以外では変更しない方法を示す。この変数をnil
にセットすると、Emacsはそれらのファイルのバックアップ作成をストップするのでディスク容量の消費を節約するだろう(あなたはこのコードをinitファイルに配置したいと思うかもしれない)。
(add-hook 'rmail-mode-hook (lambda () (setq-local make-backup-files nil)))
この変数の値は、あるファイルがバックアップファイルをもつべきかどうかを決定するために、特定のタイミングで呼び出される関数ある。この関数は判断対象の絶対ファイル名という1つの引数を受け取る。この関数がnil
をリターンすると、そのファイルにたいするバックアップは無効になる。それ以外なら、このセクション内の他の変数がバックアップ作成の是非と方法を指定する。
デフォルト値はnormal-backup-enable-predicate
で、これはtemporary-file-directory
とsmall-temporary-file-directory
内のファイルをチェックする。
この変数が非nil
ならバックアップは抑制される。これはvisitされているファイル名にたいするbackup-enable-predicate
のテスト結果を記録する。さらにvisitされているファイルにたいするバックアップ抑制にもとづいたその他の機構からも使用され得る。たとえばVCはバージョンコントロールシステムに管理されるファイルのバックアップを防ぐために、この変数を非nil
にセットする。
これは永続的にローカルなのでメジャーモード変更により値は失われない。メジャーモードはこの変数ではなく、かわりにmake-backup-files
をセットすること。
この変数の値はファイル名パターンとバックアップディレクトリーのalist。各要素は以下の形式をもつ
(regexp . directory)
この場合には名前がregexpにマッチするファイルのバックアップが、directory内に作成されるだろう。directoryには相対ディレクトリーか絶対ディレクトリーを指定できる。絶対ディレクトリーなら、マッチするすべてのファイルが同じディレクトリー内にバックアップされる。このディレクトリー内でのファイル名はクラッシュを避けるために、バックアップされるファイルの完全名のすべてのディレクトリー区切りが‘!’に変更される。結果の名前を切り詰めるファイルシステムでは、これは正しく機能しないだろう。
すべてのバックアップが単一のディレクトリーで行われる一般的なケースでは、alistは‘"."’と適切なディレクトリーからなるペアーという単一の要素を含むこと。
この変数がnil
(デフォルト)、またはファイル名のマッチに失敗するとバックアップは元のファイルのディレクトリーに作成される。
長いファイル名がないMS-DOSファイルシステムでは、この変数は常に無視される。
この変数の値はバックアップファイル名を作成する関数。関数make-backup-file-name
はこれを呼び出す。Naming Backup Filesを参照のこと。
特定のファイルにたいして特別なことを行うために、これをバッファーローカルにすることもできる。変更する場合には、backup-file-name-p
とfile-name-sans-versions
を変更する必要もあるかもしれない。