Функции в этом разделе документированы в основном потому, что вы можете настроить правила именования резервных файлов, переопределив их. Если вы измените одно, вам, вероятно, придется изменить и остальные.
Эта функция возвращает не-nil значение, если filename
является возможным именем резервного файла. Она просто проверяет имя, а не то,
существует ли файл с именем filename.
(backup-file-name-p "foo")
⇒ nil
(backup-file-name-p "foo~")
⇒ 3
Стандартное определение этой функции выглядит следующим образом:
(defun backup-file-name-p (file) "Возвращает не-nil, если FILE является именем резервной копии \ (числовым или нет)..." (string-match "~'" file))
Таким образом, функция возвращает не-nil значение, если имя файла
заканчивается на «~». (Мы используем обратный слеш, чтобы разделить
первую строку строки документации на две строки в тексте, но получить только
одну строку в самой строке.)
Это простое выражение помещено в отдельную функцию, чтобы его было легко переопределить для настройки.
Эта функция возвращает строку, которая является именем, используемым для непронумерованного резервного файла для файла filename. В Unix это просто filename с добавленным тильдой.
Стандартное определение этой функции, в большинстве операционных систем, выглядит следующим образом:
(defun make-backup-file-name (file) "Создает имя резервной копии без номера для FILE..." (concat file "~"))
Вы можете изменить соглашение об именовании резервных файлов, переопределив
эту функцию. Следующий пример переопределяет make-backup-file-name,
добавляя «.» в начало, помимо добавления тильды:
(defun make-backup-file-name (filename)
(expand-file-name
(concat ". " (file-name-nondirectory filename) "~")
(file-name-directory filename)))
(make-backup-file-name "backups.texi")
⇒ ".backups.texi~"
Некоторые части Emacs, включая некоторые команды Dired, предполагают, что имена резервных файлов заканчиваются на «~». Если вы не соблюдаете это соглашение, это не вызовет серьезных проблем, но эти команды могут дать нежелательные результаты.
Эта функция вычисляет имя файла для новой резервной копии для
filename. Она также может предложить некоторые существующие
резервные файлы для удаления. find-backup-file-name
возвращает список, чей CAR — это имя новой
резервной копии, а чей CDR — это список резервных
файлов, удаление которых предлагается. Значение также может быть
nil, что означает отказ от создания резервной копии.
Две переменные, kept-old-versions и kept-new-versions,
определяют, какие версии резервных копий следует сохранить. Эта функция
сохраняет эти версии, исключая их из CDR возвращаемого
значения. См. Создание и удаление
резервных файлов с нумерацией.
В этом примере значение указывает, что ~rms/foo.~5~ — имя, которое следует использовать для новой резервной копии, а ~rms/foo.~3~ — это избыточная версия, которую вызывающий должен рассмотреть для удаления.
(find-backup-file-name "~rms/foo")
⇒ ("~rms/foo.~5~" "~rms/foo.~3~")
Эта функция возвращает список всех имен резервных файлов для
filename или nil, если их нет. Файлы
отсортированы по времени модификации в порядке убывания, так что самые
недавние файлы идут первыми.
Эта функция возвращает первый элемент списка, возвращаемого
file-backup-file-names.
Некоторые команды сравнения файлов используют эту функцию, чтобы они могли автоматически сравнивать файл с его самой последней резервной копией.