获取Emacs版本信息的正确方式
当向 Emacs devs 报告bug时, 你需要告之当前使用Emacs的版本好. 通常我们使用 M-x emacs-version
在minibuffer中显示版本信息(或者给它带上一个prefix argument让它在当前位置插入版本信息).
然而,如果你的Emacs是直接从源代码便以过来的开发版,这个版本信息基本没啥用 - 它并不能告诉我们你用的emacs源代码来自于那一次的提交.
我把这个问题在邮件列表中咨询了一下,结果被告之其实有个 emacs-repository-get-version
函数能够返回当前版本库的提交信息(也就是Git的commit hash了).
由于我是不是都要报告一下Emacs bug,所以我在 init.el
中定义了这个函数:
(defun insert-debug-version-info () "Insert version of Emacs and 7 characters of the commit hash." (interactive) (insert (format "GNU Emacs %s (commit %s)" emacs-version (substring (emacs-repository-get-version) 0 7))))