J'utilise use-packagepour gérer les packages installés et bind-keyattribuer des actions aux clés personnalisées que j'aime.
Je remplace la plupart des raccourcis clavier Emacs par défaut (par exemple C-ndevient M-k, C-pdevient M-i), mais je suis OK avec d'autres modes remplaçant mon schéma de raccourcis clavier. Parfois, cependant, je veux que ma liaison de touches persiste. Je veux M-kdire autre chose que Gnus ou Helm par défaut.
Cependant, ils entrent tous en conflit les uns avec les autres au démarrage d'Emacs, car je ne peux pas ajouter de liaison à une image clé, si elle n'existe pas (car use-packageparfois diffère le chargement d'un package). Par exemple, les commandes suivantes génèrent des erreurs (par exemple (void-variable helm-map)), car Helm et Gnus ne sont pas encore complètement chargés.
(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)
J'ai toutes mes use-packageinvocations dans un fichier et bind-keypour les raccourcis clavier personnalisés dans un autre fichier. Je ne veux pas mettre de liaisons dans les use-packageappels, car je veux peut-être publier mon schéma de liaison de touches personnalisé en tant que package autonome. Que se passe-t-il si je veux que quelqu'un qui installe mon système se fasse remplacer les raccourcis clavier locaux de Helm et Gnus?
Comment gérer les raccourcis clavier en mode local à l'aide de bind-key, de sorte que toutes les clés soient définies même si les packages sont chargés récemment et que tous les paramètres de clés se trouvent dans un seul fichier?