У меня есть второстепенный режим, который также поставляется с глобальным режимом. В этом режиме есть некоторые привязки клавиш, и я хочу, чтобы у пользователя была возможность указать, какие привязки должны работать для каждого режима.
(my-minor-mode-bindings-for-mode 'some-mode '(key1 key2 ...))
(my-minor-mode-bindings-for-mode 'some-other-mode '(key3 key4 ...))
Так что мне нужна какая-то карта режима / буфера локального ключа. Буфер локальный
немного проблематично, так как пользователь может изменить основной режим.
Я пробовал некоторые решения, ни один из которых не работает.
- Всегда связывайте все возможные ключи, и когда пользователь вводит ключ, проверьте, должен ли ключ быть активным в этом режиме. Выполните действие, если оно истинно, иначе отступите.
- Как и в предыдущем случае, только то, что ключи не связаны. Вместо этого я использую предварительную команду hook и проверяю, должна ли нажатая клавиша что-то делать.
- Для каждого обновления буфера (что бы это ни значило), запустите функцию, которая сначала очищает карту ключей, а затем обновляет ее привязками для этого конкретного режима.
Я попробовал эти подходы и обнаружил проблемы со всеми из них. Знаете ли вы какой-нибудь хороший способ решить эту проблему?
Спасибо!