2017-04-14 2 views
0

J'essaie de définir des liaisons personnalisées et j'ai rencontré un problème embarrassant. Je ne parviens pas à relier C-M-q ou à le dissocier complètement. Je n'ai aucun problème à relier d'autres clés, donc je ne sais pas ce qui est spécial à propos de C-M-q. Voici quelques-unes des choses que j'ai essayées dans mon fichier .emacs.Impossible de relier C-M-q dans emacs

;;(global-set-key (kbd "C-M-q") nil) 
;;(global-unset-key (kbd "C-M-q")) 
;;(global-set-key (kbd "C-M-q") 'shrink-window-horizontally) 
(global-set-key (kbd "C-M-y") 'shrink-window-horizontally) 
(global-set-key (kbd "C-M-w") 'shrink-window) 
(global-set-key (kbd "C-M-e") 'enlarge-window) 
(global-set-key (kbd "C-M-r") 'enlarge-window-horizontally) 

Peu importe ce que j'essaie, la commande Ch k dit CMQ est lié à

CMQ exécute la commande indent-p-sexp, qui est un interactif compilé fonction Lisp `lisp- mode.el '.

Il est lié à C-M-q.

Répondre

1

Le global keymap est le keymap moins prioritaires, alors que cette liaison est dans le local (mode majeur) keymap pour le tampon que vous êtes à la recherche (qui est un tampon Lisp), donc Emacs jamais voit vos changements de keymap global, parce qu'il a trouvé une liaison avant d'aller aussi loin.

Spécifiquement, cette liaison se trouve dans lisp-mode-shared-map (une matrice de touches parent pour plusieurs modes Lisp), qui associe une liaison plus générique dans prog-mode-map. D'autres modes de programmation ont leurs propres liaisons pour cette clé, afin de s'assurer qu'elle aura toujours un certain type de comportement "d'expression d'indentation".

En tant que tel, je voudrais suggérer vous ne clobber cette liaison, car il existe une utilisation standard pour cela. Si vous vraiment voulez faire, alors vous devriez regarder Globally override key binding in Emacs.

Emacs a de nombreuses couches de keymaps, et il est important d'avoir une idée de la façon dont fonctionne le système, donc je vous recommande fortement de prendre le temps de lire l'article suivant sur le sujet:

https://www.masteringemacs.org/article/mastering-key-bindings-emacs