昔、私が .emacs のセットアップ[1]を書いたとき、私はシェルスクリプトを使ってコンパイルし、すべてを結合しました。このことは非常に古く、「無愛想」になっているため、次のようなものを置き換えるために書き直しています。
(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 ほどのファイルと 2 つのコードのサブディレクトリを意味します。言うまでもなく、(インクルードの時点で) 標準の emacs ディストリビューションに含まれていないパッケージがいくつかあります。
[2] eg を "" に置き換えました。なぜなら、eg の意味を知らない人が多いようです。それか、彼らは例が何であるかを知りません。
[3] diff-mode、ruby-modeなど。