Eu uso use-package
para gerenciar pacotes instalados e bind-key
atribuir ações às chaves personalizadas que eu gosto.
Eu substituo a maioria das combinações de teclas padrão do Emacs (por exemplo , torna- C-nse M-k, C-ptorna-se M-i), mas estou bem com outros modos de substituir meu esquema de combinação de teclas. Às vezes, quero que minha combinação de teclas persista, no entanto. Eu quero M-kdizer algo mais, do que no padrão Gnus ou Helm.
No entanto, todos eles entram em conflito entre si na inicialização do Emacs, porque não posso adicionar uma ligação a um mapa de teclas, se ela não existir (porque use-package
às vezes adia o carregamento de um pacote). Por exemplo, os comandos a seguir geram erros (por exemplo (void-variable helm-map)
), porque Helm e Gnus ainda não estão totalmente carregados.
(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)
Eu tenho todas as minhas use-package
chamadas em um arquivo e bind-key
para ligações de teclas personalizadas em outro arquivo. Não quero colocar ligações em use-package
chamadas, porque talvez eu queira publicar meu esquema de ligação de teclas personalizado como um pacote autônomo. E se eu quiser que alguém que esteja instalando meu esquema também tenha bloqueado os atalhos de teclado locais Helm e Gnus?
Como gerenciar ligações de teclas locais no modo usando bind-key
, para que todas as chaves sejam definidas mesmo que os pacotes sejam carregados recentemente e todas as configurações de teclas estejam dentro de um arquivo?
fonte
Como você já está usando a chave de ligação, diretamente da documentação de
bind-key.el
:O último formulário é dividido se o mapa de teclas não estiver definido no momento porque a definição do arquivo
some-other-mode-map
ainda não foi carregada. Então você pode colocar isso em umuse-package
parasome-other-mode
(a definição do pacotesome-other-mode-map
) ou usandowith-eval-after-load
:Uma outra alternativa seria definir seu próprio modo secundário, contendo todas as ligações que não devem ser substituídas pelos modos principais:
fonte