Если вы когда-либо были сохранены в файле резервной копии Emacs, вам, вероятно, нужно больше, а не меньше. Досадно, что они находятся в том же каталоге, что и файл, который вы редактируете, но это легко изменить. Вы можете сделать все файлы резервных копий в каталоге, добавив в ваш файл что-то вроде следующего
.emacs
.
(setq backup-directory-alist `(("." . "~/.saves")))
Есть несколько загадочных деталей, связанных с тем, как Emacs может создавать ваши файлы резервных копий. Должен ли он переименовать оригинал и записать отредактированный буфер? Что если оригинал связан? В общем, самая безопасная, но самая медленная ставка - всегда делать резервные копии путем копирования.
(setq backup-by-copying t)
Если это слишком медленно по какой-то причине, вы также можете посмотреть
backup-by-copying-when-linked
.
Поскольку все ваши резервные копии теперь находятся на своем месте, вам может понадобиться больше, а не меньше. Посмотрите на документацию Emacs для этих переменных (с C-h v
).
(setq delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t)
Наконец, если у вас абсолютно нет резервных файлов:
(setq make-backup-files nil)
Мне больно думать об этом, хотя.
Резервное копирование / автосохранение Emacs может быть очень полезным. Но эти особенности сбивают с толку.
Резервные файлы
Резервные файлы имеют тильды (
~
или~9~
) в конце и должны быть записаны в домашний каталог пользователя. Еслиmake-backup-files
не ноль, Emacs автоматически создает резервную копию исходного файла при первом сохранении файла из буфера. Если вы редактируете новый файл, Emacs создаст резервную копию при втором сохранении файла.Независимо от того, сколько раз вы сохраняете файл, резервная копия остается неизменной. Если вы уничтожите буфер, а затем снова зайдете в этот файл или при следующем запуске нового сеанса Emacs будет создан новый файл резервной копии. Новая резервная копия отражает содержимое файла после повторного открытия или в начале сеансов редактирования. Но существующая резервная копия никогда не затрагивается снова. Поэтому я считаю полезным создание резервных копий с нумерацией (см. Конфигурацию ниже).
Для создания резервных копий явно используйте
save-buffer
(C-x C-s
) с префиксными аргументами.diff-backup
иdired-diff-backup
сравнивает файл с его резервной копией или наоборот. Но нет функции восстановления файлов резервных копий. Например, под Windows, чтобы восстановить файл резервной копииэто должно быть скопировано вручную как
Автосохранение файлов
Автосохранение файлов использует hashmarks (
#
) и должно быть записано локально в каталоге проекта (вместе с реальными файлами). Причина в том, что файлы автосохранения - это просто временные файлы, которые Emacs создает, пока файл не будет сохранен снова (как при поспешном послушании).C-x C-s
(save-buffer
), чтобы сохранить файл, Emacs автоматически сохранит файлы - на основе подсчета нажатий клавиш (auto-save-interval
) или когда вы прекратите вводить (auto-save-timeout
).Когда пользователь сохраняет файл, автоматически сохраненная версия удаляется. Но когда пользователь выходит из файла без сохранения, Emacs или X-сеанс аварийно завершают работу, автоматически сохраняемые файлы все еще существуют.
Используйте
revert-buffer
илиrecover-file
для восстановления автосохранения файлов. Обратите внимание, что Emacs записывает прерванные сеансы для последующего восстановления в файлы с именем ~ / .emacs.d / auto-save-list .recover-session
Функция будет использовать эту информацию.Предпочтительным методом восстановления из автоматически сохраненного файла является
M-x revert-buffer RET
. Emacs спросит: «Буфер был недавно сохранен автоматически. Восстановить из файла автосохранения?» или «Восстановить буфер из файла FILENAME?». В последнем случае нет файла автосохранения. Например, потому что вы сохранили, прежде чем набирать другиеauto-save-intervall
нажатия клавиш, в этом случае Emacs удалил файл автосохранения.Автосохранение в настоящее время отключено по умолчанию, поскольку оно может замедлять редактирование при подключении к медленному компьютеру, а также потому, что многие файлы содержат конфиденциальные данные.
конфигурация
Вот конфигурация, которая IMHO работает лучше всего:
Конфиденциальные данные
Другая проблема заключается в том, что вы не хотите, чтобы Emacs распространял копии файлов с конфиденциальными данными. Используйте этот режим для каждого файла отдельно. Поскольку это второстепенный режим, для моих целей я его переименовал
sensitive-minor-mode
.Чтобы включить его для всех файлов .vcf и .gpg , в вашем .emacs используйте что-то вроде:
В качестве альтернативы, чтобы защитить только некоторые файлы, такие как некоторые файлы .txt , используйте строку вроде
в файле.
источник
diff
с автоматическим сохранением, то он с фактическим файлом. Затем запустите Emacs и узнайте сами, чтоrevert-buffer
делает. Это быстро окупится в случае крайней необходимости.Общепринятый ответ хорош, но он может быть значительно улучшена за счет дополнительного резервного копирования на каждый сохранить и резервное копирование версированы файлов .
Во-первых, основные настройки, как описано в принятом ответе :
Затем также создайте резервные копии версионных файлов, которые Emacs не делает по умолчанию (вы не фиксируете их при каждом сохранении, верно?):
Наконец, делайте резервную копию при каждом сохранении, а не только при первом. Мы делаем два вида резервных копий:
резервное копирование за сеанс: один раз при первом сохранении буфера в каждом сеансе Emacs. Они моделируют стандартное поведение резервного копирования Emac.
резервные копии за сохранение: один раз при каждом сохранении. Emacs не делает этого по умолчанию, но это очень полезно, если вы оставите Emacs включенным на долгое время.
В подпорки идут в разных местах и Emacs создает каталоги резервного копирования автоматически , если они не существуют:
Я заинтересовался этой темой после того, как написал,
$<
а не$@
черезMakefile
примерно три часа после моего предыдущего коммита: PВышесказанное основано на вики-странице Emacs, которую я сильно отредактировал .
источник
setq
s в верхней части моего ответа? Вышеуказанное работает для меня в Emacs 24.5.1.Другой способ настройки параметров резервного копирования - через интерфейс настройки. Войти:
А затем по
Customize group:
запросу введитеbackup
.Если вы прокрутите до конца буфера, вы увидите Резервный каталог Alist . Нажмите Показать значение и установите первую запись в списке следующим образом:
Кроме того, вы можете отключить резервное копирование моего параметра Make Backup Files to
off
.Если вы не хотите, чтобы Emacs автоматически редактировал ваш
.emacs
файл, вам нужно настроить файл настроек .источник
customize-group
2 лет назад. Спасибо!Вы можете отключить их в целом
источник