3

Emacs21.2から23.2へのアップグレードの課題は続いています...私の.emacsには非常に便利なものがあります。

(global-set-key (quote [f4]) (quote dired-omit-toggle))

以前はEmacs18から機能していましたが、Emacs23.2では機能しなくなりました。

Lispエラー:(void-functiondired-omit-toggle)

Emacs 23.2でこの機能を置き換える方法はありますか?

EmacsWikiによると:

このモードを使用するには、InitFileに以下を追加します。

  (add-hook 'dired-load-hook
            (function (lambda () (load "dired-x"))))

そして、これはまさに私がここ数年持っているものです。しかし、Emacs23.2はもうこれを好きではありません。Emacs 23.2で何がそれを置き換えることができたのか、何か考えはありますか?

4

2 に答える 2

3

dired-omit-modeEmacs 22以降、の代わりに呼び出す必要がありますdired-omit-toggle。まだロードする必要がありますdired-x。差出人NEWS.22

*** Dired-xでは、ファイルの省略がマイナーモードのdired-omit-modeになりました。

モード切り替えコマンドはMoにバインドされています。新しいコマンドdired-mark-省略、* Oにバインド、省略されたファイルをマークします。変数dired-omit-files-pは廃止されました。代わりに、モード切り替え関数を使用してください。

于 2010-08-18T22:32:26.937 に答える
0

Emacs 21から23へのアップグレードは段階的であり、いくつかのシステムで同じ.emacsを維持する必要があるため、Emacs21を使用するシステムとEmacs23を使用するシステムがあります。次のコードを思いつきました。

(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)))
于 2010-08-18T22:47:58.440 に答える