Создание резервных файлов
- Функция: backup-buffer
-
Эта функция создаёт резервную копию файла, посещаемого текущим буфером, при необходимости. Она вызывается
save-bufferперед первым сохранением буфера.Если резервная копия была создана путём переименования, значение возврата — это ячейка списка из трёх элементов: (modes extra-alist backupname), где modes — биты режима исходного файла, возвращаемые
file-modes(см. Проверка доступности), extra-alist — список, описывающий расширенные атрибуты исходного файла, возвращаемыйfile-extended-attributes(см. Расширенные атрибуты), а backupname — имя резервной копии.Во всех остальных случаях (т. е. если резервная копия создана путём копирования или если резервная копия не создавалась), функция возвращает
nil.
- Переменная: buffer-backed-up
Эта локальная переменная буфера указывает, был ли файл этого буфера резервирован по причине этого буфера. Если она имеет ненулевое значение, то резервный файл был записан. В противном случае файл должен быть резервирован при следующем сохранении (если резервирование включено). Это постоянная локальная переменная;
kill-all-local-variablesне изменяет её.
- Пользовательский параметр: make-backup-files
-
Эта переменная определяет, нужно ли создавать резервные файлы. Если она имеет ненулевое значение, Emacs создаёт резервную копию каждого файла при первом сохранении — при условии, что
backup-inhibitedимеет значениеnil(см. ниже).Следующий пример демонстрирует, как изменить переменную
make-backup-filesтолько в буферах Rmail, а не в других. Установка её вnilостанавливает создание резервных копий этих файлов, что может сэкономить дисковое пространство. (Вы должны разместить этот код в файле инициализации.)(add-hook 'rmail-mode-hook (lambda () (setq-local make-backup-files nil)))
- Переменная: backup-enable-predicate
-
Значение этой переменной — функция, вызываемая в определённых случаях для определения, должен ли файл иметь резервные копии. Функция получает один аргумент — абсолютный путь к файлу, который нужно рассмотреть. Если функция возвращает
nil, резервирование для этого файла отключено. В противном случае другие переменные в этом разделе указывают, как и нужно ли создавать резервные копии.Значение по умолчанию —
normal-backup-enable-predicate, которое проверяет файлы вtemporary-file-directoryиsmall-temporary-file-directory.
- Переменная: backup-inhibited
-
Если эта переменная имеет ненулевое значение, резервирование запрещено. Она сохраняет результат проверки
backup-enable-predicateна имени посещаемого файла. Её также могут использовать другие механизмы, запрещающие резервирование, основанные на посещаемом файле. Например, VC устанавливает эту переменную в ненулевое значение, чтобы предотвратить создание резервных копий для файлов, управляемых системой управления версиями.Это постоянная локальная переменная, чтобы при изменении основного режима её значение не потерялось. Основные режимы не должны устанавливать эту переменную — они должны устанавливать
make-backup-filesвместо неё.
- Пользовательский параметр: backup-directory-alist
-
Значение этой переменной — список пар шаблонов имен файлов и директорий резервных копий. Каждый элемент имеет вид:
(regexp . directory)
Резервные копии файлов, имена которых соответствуют regexp, будут создаваться в directory. directory может быть относительным или абсолютным. Если она абсолютная, все соответствующие файлы резервируются в одну и ту же директорию, а имена файлов в этой директории будут полными именами резервируемых файлов, где все разделители каталогов изменены на ‘!’, чтобы избежать конфликтов. Это не будет работать правильно, если ваша файловая система обрезает полученное имя.
В общем случае, если все резервные копии должны быть в одной директории, в списке должна быть одна пара, сопоставляющая ‘"."’ с соответствующей директорией.
Если эта переменная имеет значение
nil(по умолчанию) или не соответствует имени файла, резервная копия создаётся в директории исходного файла.На файловых системах MS-DOS без длинных имён эта переменная всегда игнорируется.
- Пользовательский параметр: make-backup-file-name-function
-
Значение этой переменной — функция, используемая для создания имён резервных файлов. Функция
make-backup-file-nameеё вызывает. См. Именование резервных файлов.Это может быть локальная переменная буфера для выполнения чего-то специального для определённых файлов. Если вы её измените, вам может потребоваться также изменить
backup-file-name-pиfile-name-sans-versions.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Making-Backups.html