Я использую 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
все ключи, даже если пакеты загружаются в последнее время, а все настройки ключей находятся внутри одного файла?