如何在Emacs中保存迷你缓冲区历史记录?

Jon*_*ney 38 emacs history buffer

例如,我想在Emacs的迷你缓冲区中保存我的查找文件和Meta-X历史记录,以便稍后在不同的会话中调用命令.

gen*_*ack 68

正如特雷杰克逊所说,你想这样说:

(savehist-mode 1)
Run Code Online (Sandbox Code Playgroud)

在您的Emacs启动文件中,然后重新启动Emacs.(以交互方式调用它会踩到您当前的迷你缓冲区历史记录,因此您可能不想这样做.)

还值得指出的是,您可以通过将其添加到会话中来持久保存其他变量savehist-additional-variables,如下所示:

(setq savehist-additional-variables '(kill-ring search-ring regexp-search-ring))
Run Code Online (Sandbox Code Playgroud)

您可能还想自定义savehist-file,选择Emacs保存所有这些内容的位置:

(setq savehist-file "~/.emacs.d/tmp/savehist")
Run Code Online (Sandbox Code Playgroud)

  • “...然后重新启动 Emacs。(以交互方式调用它会破坏您当前的迷你缓冲区历史记录,因此您可能不想这样做。)” 当您没有 `savehist-mode` 时,不会重新启动 Emacs启用后,还会破坏您的历史记录吗?看来交互式调用对 Emacs 状态的破坏性较小,除非我遗漏了一些东西。 (2认同)

Tre*_*son 14

M-x savehist-mode
Run Code Online (Sandbox Code Playgroud)

要么

(savehist-mode 1)
Run Code Online (Sandbox Code Playgroud)

(自22.1开始在Emacs中提供)