Как мне управлять тем, как Emacs создает резервные копии файлов?
Резервное копирование / автосохранение multi-term файлов Emacs может быть очень emacs полезным. Но эти особенности emacs сбивают с толку.
Файлы резервных копий
Файлы резервных emacs копий имеют в конце тильды multi-term (~
или ~9~
) и должны быть записаны emacs в домашний каталог пользователя. Когда emacs make-backup-files
не равно нулю, Emacs автоматически emacs создает резервную копию исходного multi-term файла при первом сохранении emacs файла из буфера. Если вы emacs редактируете новый файл, Emacs emacs создаст резервную копию при emacs втором сохранении файла.
Независимо multi-term от того, сколько раз вы сохраняете multi-term файл, резервная копия остается multi-term неизменной. Если вы уничтожите multi-term буфер, а затем снова обратитесь emacs к файлу, или в следующий multi-term раз, когда вы запустите новый emacs сеанс Emacs, будет создан emacs новый файл резервной копии. Новая multi-term резервная копия отражает multi-term содержимое файла после повторного emacs открытия или в начале сеансов emacs редактирования. Но существующая emacs резервная копия больше никогда emacs не используется. Поэтому emacs я считаю полезным создавать emacs нумерованные резервные копии emacs (см. Конфигурацию ниже).
Для emacs создания резервных копий multi-term явно используйте save-buffer
(C-x C-s
) с аргументами multi-term префикса.
diff-backup
и dired-diff-backup
сравнивают файл emacs с его резервной копией или multi-term наоборот. Но нет функции emacs восстановления файлов резервных emacs копий. Например, в Windows emacs для восстановления файла multi-term резервной копии
C:\Users\USERNAME\.emacs.d\backups\!drive_c!Users!USERNAME!.emacs.el.~7~
его нужно multi-term скопировать вручную как
C:\Users\USERNAME\.emacs.el
Автосохранение файлов
Файлы emacs автосохранения используют emacs хэш-метки (#
) и должны быть multi-term записаны локально в каталоге emacs проекта (вместе с самими multi-term файлами). Причина в том, что emacs файлы автосохранения - это multi-term просто временные файлы, которые emacs Emacs создает до тех пор, пока multi-term файл не будет сохранен снова multi-term (как при поспешном послушании).
- Перед тем, как пользователь нажмет
C-x C-s
(save-buffer
) для сохранения файла, Emacs автоматически сохраняет файлы - на основе подсчета нажатий клавиш (auto-save-interval
) или когда вы прекращаете вводить (auto-save-timeout
). - Emacs также автоматически сохраняет свое состояние при сбое, включая завершение задания Emacs с помощью команды оболочки.
Когда multi-term пользователь сохраняет файл, автоматически multi-term сохраненная версия удаляется. Но emacs когда пользователь выходит multi-term из файла, не сохранив его, происходит multi-term сбой Emacs или X-сеанса, автоматически multi-term сохраненные файлы все еще emacs существуют.
Используйте revert-buffer
или multi-term recover-file
для восстановления файлов emacs с автоматическим сохранением. Обратите multi-term внимание, что Emacs записывает multi-term прерванные сеансы для последующего multi-term восстановления в файлы с multi-term именами ~ / .emacs.d / auto-save-list. Эта информация emacs будет использоваться функцией emacs recover-session
.
Предпочтительный метод восстановления emacs из автоматически сохраненного multi-term файла - M-x revert-buffer RET
. Emacs спросит: «Буфер emacs недавно был автоматически multi-term сохранен. Вернуться из файла emacs автосохранения?» или «Восстановить emacs буфер из файла FILENAME?». В multi-term последнем случае файл автосохранения multi-term отсутствует. Например, поскольку multi-term вы сохранили перед тем, как multi-term ввести еще один auto-save-intervall
нажатия emacs клавиш, в этом случае Emacs multi-term удалил файл автосохранения.
В emacs настоящее время автосохранение multi-term отключено по умолчанию, поскольку emacs оно может замедлить редактирование multi-term при подключении к медленному multi-term компьютеру, а также потому, что multi-term многие файлы содержат конфиденциальные emacs данные.
Конфигурация
Вот конфигурация, которая, ИМХО, работает emacs лучше всего:
(defvar --backup-directory (concat user-emacs-directory "backups"))
(if (not (file-exists-p --backup-directory))
(make-directory --backup-directory t))
(setq backup-directory-alist `(("." . ,--backup-directory)))
(setq make-backup-files t ; backup of a file the first time it is saved.
backup-by-copying t ; don't clobber symlinks
version-control t ; version numbers for backup files
delete-old-versions t ; delete excess backup files silently
delete-by-moving-to-trash t
kept-old-versions 6 ; oldest versions to keep when a new numbered backup is made (default: 2)
kept-new-versions 9 ; newest versions to keep when a new numbered backup is made (default: 2)
auto-save-default t ; auto-save every buffer that visits a file
auto-save-timeout 20 ; number of seconds idle time before auto-save (default: 30)
auto-save-interval 200 ; number of keystrokes between auto-saves (default: 300)
)
Конфиденциальные данные
Другая проблема emacs заключается в том, что вы emacs не хотите, чтобы Emacs распространял multi-term копии файлов с конфиденциальными emacs данными. Используйте this mode для multi-term каждого файла отдельно. Поскольку multi-term это второстепенный режим, для emacs своих целей я переименовал emacs его в sensitive-minor-mode
.
Чтобы включить его emacs для всех файлов .vcf и .gpg, в ваших emacs .emacs используйте что-то emacs вроде:
(setq auto-mode-alist
(append
(list
'("\\.\\(vcf\\|gpg\\)$" . sensitive-minor-mode)
)
auto-mode-alist))
В качестве альтернативы, чтобы multi-term защитить только некоторые multi-term файлы, например некоторые emacs файлы .txt, используйте строку multi-term вида
// -*-mode:asciidoc; mode:sensitive-minor; fill-column:132-*-
в файле.
emacs
Как мне управлять тем, как Emacs создает резервные копии файлов?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.