这个地方该用"<"还是“<=" ?

(let ((minver "24.1"))
  (when (version<= emacs-version minver)
    (error "Your Emacs is too old -- this config requires v%s or higher" minver)))

我从purcell的配置上抄来的代码。 它的本意是禁用emacs 24.1以下 (不含24.1) 的版本。但是为什么这儿要用个"<=" 那如果我的版本恰好是24.1,不就成了“既是错误的,而且需要它”了么? 还是说,elisp的判断机制和一般的语言不同?

看起来是个 Typo,不过更有可能是因为实际中 emacs-version 都是有第三位的,比如我的电脑上的 Emacs 22.1 和 25.2 的 emacs-version 分别是:

  • 22.1.1
  • 25.2.1

所有如果用的是 24.1 的话,你的版本号估计是 24.1.1 或者更高,基于这个假设上面的判断就没有问题。

我觉得这些帖子可以合起来开个专题:

配置文件是怎样炼成的

好吧…… 我确实成了彻头彻尾的伸手党了…… 抱歉!

另外purcell本人回复我,确实该用"<", 只不过为了兼容以前的Travis CI才那么写。

现在已经改过来了。 此贴终结

是一个 Typo。他的意思是他之所以没有发现,是因为 Travis 用了一个打补丁版本的 Emacs 24.1,比如 24.1.1 之类的。