グローバルモードも付属するマイナーモードがあります。モードにはいくつかのキーバインディングがあり、各モードでどのバインディングが機能するかをユーザーが指定できるようにしたいと考えています。
(my-minor-mode-bindings-for-mode 'some-mode '(key1 key2 ...))
(my-minor-mode-bindings-for-mode 'some-other-mode '(key3 key4 ...))
そのため、ある種のモード/バッファー ローカル キー マップが必要です。ユーザーがメジャーモードを変更できるため、バッファローカルは少し問題があります。
どちらもうまくいかない解決策をいくつか試しました。
- 可能なすべてのキーを常にバインドし、ユーザーがキーを入力したときに、そのモードでキーをアクティブにする必要があるかどうかを確認します。true の場合はアクションを実行し、そうでない場合はフォールバックします。
- 前のケースと同様に、キーがバインドされていないという点だけです。代わりに、コマンド前のフックを使用して、押されたキーが何かを実行するかどうかを確認します。
- バッファの更新ごとに (それが何を意味するにせよ)、最初にキー マップをクリアし、次にその特定のモードのバインディングで更新する関数を実行します。
私はこれらのアプローチを試しましたが、それらすべてに問題があることがわかりました。これを解決する良い方法を知っていますか?
ありがとう!