Comment distinguer Cm de RETURN?


14

Lorsque vous essayez d'utiliser en mode javascript, C-c C-m iobtenez une erreur indiquant " C-c RETn'est pas défini?"

Qu'est-ce qui fait croire à Emacs que j'insiste RET?

Comment puis-je correctement faire fonctionner ce raccourci clavier?



1
Même problème, point d'entrée différent, je pense que ce serait bien de garder les deux questions pour les personnes venant de recherches différentes.
Jordon Biondo


Réponses:


19

Emacs "pense" que C-mc'est RETparce 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-mde RETdans une interface graphique Emacs, on pourrait changer C-ipour C-men @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


2
C'est génial, merci. Maintenant, je peux avoir C-mune carte de préfixe pour plusieurs curseurs.
John Wiegley
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.