Я використовую use-package
для управління встановленими пакунками та bind-key
для призначення дій спеціальним клавішам, які мені подобаються.
Я перекриваю більшість замовчувань Emacs за замовчуванням (наприклад, C-nстає M-k, C-pстає M-i), але я в порядку з іншими режимами, що змінюють мою схему введення клавіш. Іноді, однак, я хочу, щоб мої клавіші зберігалися. Я хочу M-kмати на увазі щось інше, ніж за замовчуванням Gnus або Helm.
Однак всі вони конфліктують між собою під час запуску Emacs, тому що я не можу додати прив'язку до мапі клавіш, якщо її немає (бо use-package
іноді відкладається завантаження пакета). Наприклад, наступні команди видають помилки (наприклад (void-variable helm-map)
), тому що Helm та Gnus ще не повністю завантажені.
(bind-key "M-Y" 'helm-end-of-buffer helm-map)
(bind-key "M-k" 'helm-next-line helm-find-files-map)
(bind-key "M-s" 'other-window gnus-summary-mode-map)
У мене всі use-package
виклики в одному файлі, а в інших bind-key
- власні вкладки ключів. Я не хочу вкладати прив'язки до use-package
дзвінків, тому що, можливо, я хочу опублікувати власну власну схему вкладки клавіш як окремий пакет. Що робити, якщо я хочу, щоб хтось, хто встановлював мою схему, також перекрив місцеві клавіатурні зв'язки Helm та Gnus?
Як я можу керувати локальними режимами клавіш за допомогою bind-key
, щоб усі клавіші були встановлені, навіть якщо пакети завантажуються останнім часом, а всі параметри клавіш знаходяться всередині одного файлу?