You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Emacs中savehist-minibuffer-history-variables的取值?

错误原因

你遇到的报错是因为savehist-save-hook的钩子项必须是可执行的函数,你直接将变量名savehist-minibuffer-history-variables加入钩子,Emacs执行钩子时会尝试调用该名称对应的函数,而这个符号仅作为变量存在、没有对应的函数定义,因此抛出Symbol’s function definition is void错误。

正确配置

你只需要在钩子中定义专门的设置逻辑即可,推荐使用更稳妥的延迟加载写法,避免savehist未加载时变量不存在的问题:

(with-eval-after-load 'savehist
  ;; 只保留你需要保存的自定义变量
  (setq savehist-additional-variables '(filesets-data))
  ;; 每次执行保存操作前清空 minibuffer 历史变量列表
  (add-hook 'savehist-save-hook
            (lambda ()
              (setq savehist-minibuffer-history-variables nil))))

如果还没有开启savehist自动保存功能,在配置中额外加入一行(savehist-mode 1)即可开启。

配置完成后重启Emacs生效,你也可以手动执行M-x savehist-save后查看savehist-file的内容,确认只会保留filesets-data的相关记录,不会保存其他默认的minibuffer历史。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:24:02