我从版本 18 开始就一直在使用 Emacs。Emacs Lisp 不是我的常规编程语言,但几年前我花了一些时间研究它,以至于创建了一个(对我而言)比迄今为止任何 GUI IDE 都更好的 .emacs。
那是一次性的努力,从那时起,我完全忘记了如何用 lisp 编程。
唉,每次我升级我的 Emacs (18 > 19 > 20 > 21 > 22 > 23) 时,我的 .emacs 中的某些东西都会中断,我最终会花费太多时间(有时是几天)来修复这些问题。
在我经常编程的许多其他语言中,可以编写永不过时的代码。另一方面,在 emacs 中,我永远无法预测事情会如何变化。例如[M-TAB]
,在 21.4.1 版之前一直有效,在 23 版中不再有效,必须替换为"\M-\t"
. 另一个例子是dired-omit-toggle
曾经在版本 21 中工作,但在版本 22 中停止工作,被替换为dired-omit-mode
.
现在,我知道如果 .emacs 没有太多作用,则可以编写“几乎为空”的 .emacs,它可以(可能)与未来版本保持兼容。
但是我的 .emacs 非常庞大,设计用于在许多不同的操作系统(以及它们不同的风格、版本和版本,包括非 GUI 系统)上运行而无需进行任何更改。我希望有一个可以保证始终工作的核心 API 或子集。
真的有这样的方法来编写一个始终保持向上兼容的 .emacs 吗?
如果是这样,我在哪里可以找到完成此任务的“烹饪书”或权威指南?