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

Emacs中如何对savehist-file输出内容进行缩进格式化提升可读性

解决savehist保存filesets-data时单行超长的问题

savehist默认使用无格式化的打印逻辑输出内容,你可以通过以下两种方案实现缩进格式化:

方案1:配置savehist自动输出格式化内容

通过修改savehist保存时的打印参数,让它自动生成带缩进的内容,推荐使用advice的方式避免影响全局打印行为:

  • 把以下代码加入你的Emacs配置文件:
(advice-add 'savehist-save :around
            (lambda (orig-fn &rest args)
              (let ((print-pretty t)       ; 开启美化打印
                    (print-level nil)       ; 不限制嵌套结构深度
                    (print-length nil)      ; 不限制列表元素数量
                    (print-escape-newlines nil))
                (apply orig-fn args))))

配置生效后,下次savehist自动保存或者手动执行M-x savehist-save时,savehist-file里的所有内容包括filesets-data都会自动按层级缩进换行,不会再挤在同一行。

方案2:手动格式化已有历史文件

如果需要格式化已经生成的单行超长savehist文件,直接在Emacs中操作即可:

  • 打开savehist-file对应的文件
  • 执行M-x lisp-mode切换到Lisp major mode
  • 按C-x h全选文件所有内容
  • 按C-M-\执行indent-region命令,全文档会自动完成层级缩进格式化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:36:03