多数のコンピューターで Emacs 構成を共有しています。それらの中には、自分の emacs のコピーを簡単に維持できるものもあれば、その余裕がないものもあります。次のメッセージが表示されます。
'disabled-command-hook' は廃止された変数です (Emacs 22.1 以降)。「無効コマンド機能」を使用する
これは、まだコンパイルされていないファイルをバイトコンパイルするように構成を設定しているため、起動時に発生します。問題は、まだ 1 つまたは 2 つの Emacs 21 インスタンスがあることです。古いものと新しいものの両方をサポートするにはどうすればよいですか? 私のgoogle-fuは私のために働いていません。
このマクロを使用してみました:
(defmacro WhenEmacsOlderThan (major minor &rest body)
`(if (or (< emacs-major-version ,major) (and (= emacs-major-version ,major)
(< emacs-minor-version ,minor)))
(progn ,@body)
nil
)
)
使用中は次のようになります。
(WhenEmacsOlderThan 22 1
(setq disabled-command-hook nil)
)
しかし、廃止された変数に関する新しいバージョンの Emacs にはまだメッセージが表示されます。私は何が欠けていますか?
このような他の質問を見つけましたが、目標はメッセージを非表示にすることでした. メッセージが表示される理由と、バージョン間で互換性のある方法で問題を回避する方法を理解したいです。
ありがとう。