Поскольку мое обновление с Emacs 21 до 23 является постепенным, из-за необходимости поддерживать одинаковые .emacs для нескольких систем, некоторые из которых используют Emacs 21, а некоторые используют Emacs 23, я придумал следующий код:
(GNUEmacs21
(global-set-key (quote [f4]) (quote dired-omit-toggle))
)
(GNUEmacs22
(global-set-key (quote [f4]) (quote dired-omit-mode))
)
(GNUEmacs23
(global-set-key (quote [f4]) (quote dired-omit-mode))
)
GNUEmacs21, GNUEmacs22 и GNUEmacs23 определены ранее в файле .emacs как:
(defmacro GNUEmacs23 (&rest body)
(list 'if (string-match "GNU Emacs 23" (version))
(cons 'progn body)))
(defmacro GNUEmacs22 (&rest body)
(list 'if (string-match "GNU Emacs 22" (version))
(cons 'progn body)))
(defmacro GNUEmacs21 (&rest body)
(list 'if (string-match "GNU Emacs 21" (version))
(cons 'progn body)))