很久以前,当我编写我的 .emacs 设置 [1] 时,我使用了一个 shell 脚本来编译并加入整个事情。这东西现在已经很老了而且“硬壳”,所以我现在正在重写它以替换以下内容:
(defmacro make-new-comment( mode face strcom color1 color2)
(list 'progn
`(make-face ',face)
`(if (not (assoc ,strcom ,(intern (concat (symbol-name mode) "-comments-alist"))))
(setf ,(intern (concat (symbol-name mode) "-comments-alist"))
(append ,(intern (concat (symbol-name mode) "-comments-alist")) '((,strcom . ,face)))
)
)
`(modify-face ',face ,color1 ,color2 nil t nil nil nil nil)
)
)
我发生了一些事情。编译时,我访问了几个环境变量,提供了有关系统的信息,例如[2],大多数程序的全名,由使用 comint[3] 的某种模式调用。而不是读取环境变量,我可以使用一些类似 autoconf 的工具来调整 .emacs 文件,然后编译它们。
问题是 autoconf 实在是太难看了。我考虑过 cmake,但是文档很差,尤其是在构建自己的构建系统方面。我不熟悉备用系统。
建议?
[1]:为了清楚起见,.emacs 设置是指我拥有的 30 个左右的文件和两个代码子目录。更不用说几个包(在包含的时候)不是标准 emacs 发行版的一部分。
[2] 我已经将 eg 替换为 "" 因为显然很多人不知道 eg 的意思是例如。要么,要么他们不知道一个例子是什么。
[3] 如 diff-mode 和 ruby-mode。