Lorsque vous essayez d'utiliser en mode javascript, C-c C-m i
obtenez une erreur indiquant " C-c RET
n'est pas défini?"
Qu'est-ce qui fait croire à Emacs que j'insiste RET
?
Comment puis-je correctement faire fonctionner ce raccourci clavier?
Lorsque vous essayez d'utiliser en mode javascript, C-c C-m i
obtenez une erreur indiquant " C-c RET
n'est pas défini?"
Qu'est-ce qui fait croire à Emacs que j'insiste RET
?
Comment puis-je correctement faire fonctionner ce raccourci clavier?
Réponses:
Emacs "pense" que C-m
c'est RET
parce que "Control M" est le caractère de contrôle ASCII "retour chariot". Même si cette raison est "historique", Emacs peut fonctionner dans un terminal et doit donc prendre en charge la façon dont les terminaux fonctionnent toujours .
Essayez d'ouvrir une fenêtre de terminal, de taper " ls
" et d'appuyer sur C-m
. Vous verrez qu'il est interprété comme "retour", même si vous n'êtes pas dans Emacs.
Voir Caractère de contrôle sur Wikipedia pour plus de détails sur les caractères de contrôle.
Pour distinguer C-m
de RET
dans une interface graphique Emacs, on pourrait changer C-i
pour C-m
en @nispio « s réponse :
(define-key input-decode-map [?\C-m] [C-m])
;; now we can do this:
(defun my-command ()
(interactive)
(message "C-m is not the same as RET any more!"))
(global-set-key (kbd "<C-m>") #'my-command)
Voir également
Comment distinguer Ci de TAB? , qui est très étroitement lié.
Comment lier Ci comme différent de TAB? et cette réponse en particulier.
C-m
une carte de préfixe pour plusieurs curseurs.