gpt4 book ai didi

version-control - 如何在每次 Emacs 启动时创建 .emacs 备份

转载 作者:行者123 更新时间:2023-12-02 19:37:16 24 4
gpt4 key购买 nike

每次 Emacs 启动时备份 .emacs 文件的好方法是什么?我想保留多个副本,以便在需要返回到以前的版本时使用。

我的第一个想法是从 .emacs 文件中发出 shell 命令:

cp ~/.emacs ~/Backups/.emacs-yyyymmdd:hhmmss

...附加当前时间戳以获得唯一的文件名。但据我所知,您无法从 .emacs 文件发出 shell 命令。

我读过BackupEachSaveForceBackups 。有人有这些经验吗?它们运作良好吗?

编辑:
Event_jr关于版本控制的回答是一个可能的解决方案。不过,我更喜欢使用 shell 命令,因为版本控制适用于所有文件,而且我不需要每个文件的多个备份。

我查看了“版本控制”变量。这是described在 Emacs 手册中:

Emacs can also make numbered backup files. Numbered backup file names contain ‘.~’, the >number, and another ‘~’ after the original file name. Thus, the backup files of eval.c >would be called eval.c.~1~, eval.c.~2~, and so on, all the way through names like eval.c.~259~ >and beyond.

The variable version-control determines whether to make single backup files or multiple >numbered backup files.

所以,我将其添加到我的 .emacs 中:

; Version control and backups:
(setq version-control t)

按照广告宣传的那样工作。

This section讲述如何控制每个文件的备份。我还没研究过。

最佳答案

您真正应该问的问题是,我如何永远不会丢失在 Emacs 中编辑的任何文件的修订版本,包括 ~/.emacs

答案是versioned backups 。控制此功能的变量称为版本控制,这有点令人困惑,因为它完全与备份相关,而不是 VCS。

这也是Emacs的一个特性;无需安装额外的软件包。我所做的几乎所有工作都在 VCS 中,但我仍然发现轻松访问我工作的所有修订版非常有用。存储如此便宜,为什么不呢?

编辑:描述备份每个文件的save-buffer方面。

您应该阅读 save-buffer 的文档 (C-h k C-x C-s) 以了解细微差别,但基本上通过它 C-u C-u每次保存后都会强制进行备份。我实际上将它重新映射到我自己的函数

(defun le::save-buffer-force-backup (arg)
"save buffer, always with a 2 \\[universal-argument]'s

see `save-buffer'

With ARG, don't force backup.
"
(interactive "P")
(if (consp arg)
(save-buffer)
(save-buffer 16)))
(global-set-key [remap save-buffer] 'le::save-buffer-force-backup)

关于version-control - 如何在每次 Emacs 启动时创建 .emacs 备份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9450028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com