Estou usando um modo, mas não estou acostumado a suas combinações de teclas: algumas delas conflitam com as globais do emacs. Então, eu quero adicionar um prefixo de ligação a todas as suas associações de teclas existentes.
por exemplo, se my-mode definir ligação de tecla M-]para my-mode-shot , estou procurando algumas maneiras da seguinte maneira:
(define-prefix-for-mode 'my-mode (kbd "C-c m"))
então a ligação das teclas para o meu modo-tiro agora é C-c m M-].
como adicionar um prefixo de ligação a todas as associações disponíveis de um modo específico?
key-bindings
keymap
prefix-keys
象 嘉 道
fonte
fonte
Respostas:
Uma maneira de mover as teclas de atalho do -mode poderia ser com algo como
Mas esse código falhará se for executado antes da execução do modo foo. E não terá efeito se for executado após o modo ser inserido. Então você provavelmente terá que fazê-lo dentro do modo `(with-eval-after-load '...).
Além disso, se for um modo menor, o código acima também não terá efeito, porque você também precisa fazer algo como (dentro do acima
let
):fonte
Suponha que o modo de
foo-mode
chave liga-seC-x o
afoo-it
, e você não faz assim.E suponha que você queira
foo-mode-map
na chave de prefixo<f9>
:fonte
foo-it
não fique disponível via<f9> C-x o
, o que pode ser autodestrutivo se o objetivo for afastar as combinações de teclas e permanecer acessível através da tecla de prefixo.Você pode modificar o mapa de teclas do modo diretamente para mover todas as ligações sob o prefixo escolhido:
fonte