いくつかのキーバインドを提供するために、マイナーモードのコーディングを開始しました。私の最初の試みにはタイプミスがありました:
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(([b] . 'previous-line)))
b
キーを使用するつもりでしたが、すぐにの"b"
代わりに使用する必要があることに気付きました[b]
。そこで、マイナーモードを再定義しました。
(define-minor-mode borked-mode
"A mode defined with a broken key binding"
nil nil
'(("b" . 'previous-line)))
ただし、これは機能しませんでした。これにより、キーをバインドするさまざまな方法(つまり、(kbd ...)、[...]など)を使った野生のガチョウの追跡が始まりました。最後に、(define-minor-mode ...)
フォームを再評価するだけでは何も変わらず、元の壊れたキーマップに固執していることに気付きました。その後、キーマップを直接経由して変更しようとしましたが(define-key borked-mode-map ...)
、まだ修正されたキーマップをロードできませんでした。最後にEmacsを再起動し、マイナーモードが正しくロードされました。
私の質問は、マイナーモード定義を開発する際にどのように更新しますか?壊れた定義をフラッシュする方法はありますか、または壊れたビットを取り除くためにemacsを再起動する必要がありますか?
defvar
後に再度の価値を評価しませんC-M-x
:)あなたは、必要があると思いますdefparameter
か、別setf
。