Bob Glickstein は、"Writing GNU Emacs Extensions" の第 3 章で、スクロール機能をアドバイスする方法について説明しています。(彼はそれらを可逆にすることを提案しているので、スクロールする前に状態を保存する必要があります。)
たとえば、スクロールアップコマンドの場合、このアドバイスは次のように行われます
(defadvice scroll-up-command (before reversibilate activate compile)
"If it wants to be reversible, it must save the former state."
(save-before-scroll))
良い。もちろん、すべてのスクロール コマンドに対してこれを行う必要があります。では、それらを順番に並べて、まとめてアドバイスしていきたいと思います。
(setq reversible-scroll-commands
[scroll-up-command
scroll-down-command
scroll-left-command
scroll-right-command])
(ベクトルを使用して 5 つの引用符を保存します。)
しかし今、私は立ち往生しています。
(mapcar
(lambda (fun-name)
(defadvice fun-name (before reversibilate activate compile)
"If it wants to be reversible, it must save the former state."
(save-before-scroll)))
reversible-scroll-commands)
defadvice はマクロであり、fun-name を評価しないため、(存在しない) 関数 fun-name を 4 回アドバイスします。
それを行う方法はありますか?
(私は Emacs 24 を使用しています)