在 Emacs 中更改 savehist-minibuffer-history-variables 的值

changing the value of savehist-minibuffer-history-variables in Emacs

它在 https://github.com/emacs-mirror/emacs/blob/master/lisp/savehist.el 的第 129-130 行说默认行为是确定 savehist-minibuffer-history-variables 的内容,而 emacs 是 运行。我确实在 savehist-file 中看到这似乎是 yes-or-no-p-historybuffer-name-history 和其他一些变量。

但是,我想保存emacs中的特定历史记录,即filesets-data的历史记录,通过

实现
(setq savehist-additional-variables '(filesets-data))

它在savehist.el的第59-60行说,这可以通过使用savehist-save-hook来改变savehist-minibuffer-history-variables的值来实现。

很遗憾,我不知道该怎么做。我试过了

(setq savehist-minibuffer-history-variables nil)
(add-hook 'savehist-save-hook 'savehist-minibuffer-history-variables)

在我的 .emacs.d 中,但这会产生一条错误消息:

Symbol’s function definition is void: savehist-minibuffer-history-variables

任何有关在退出 emacs 时将 savehist-minibuffer-history-variables 更改为空的帮助都表示赞赏。谢谢!

你放在钩子上的东西是一个函数,而不是一个变量(也不是一些其他的sexp)。

(defun foo ()
  (setq savehist-minibuffer-history-variables nil))

(add-hook 'savehist-save-hook #'foo)