¿Cómo distinguir Cm de RETURN?

14

Cuando está en modo javascript intentando utilizar, aparece C-c C-m iun error que dice "¿ C-c RETEstá indefinido?"

¿Qué hace que Emacs crea que estoy presionando RET?

¿Cómo puedo hacer que esta combinación de teclas funcione correctamente?

usuario3139545
fuente
2
Posible duplicado de la combinación correcta de Ctrl + iy Tab
Drew
1
Mismo problema, diferente punto de entrada, creo que sería bueno mantener ambas preguntas para las personas que vienen de diferentes búsquedas.
Jordon Biondo
1
Meta pregunta sobre si esta pregunta es un duplicado
Gilles 'SO- deja de ser malvado'
1
Posible duplicado de ¿Cómo vincular Ci como diferente de TAB?
Gilles 'SO- deja de ser malvado'

Respuestas:

19

Emacs "piensa" que C-mse RETdebe a que "Control M" es el carácter de control ASCII "retorno de carro". Aunque esta razón es "histórica", Emacs puede ejecutarse en un terminal y, por lo tanto, debe ser compatible con la forma en que los terminales todavía funcionan ahora.

Intente abrir una ventana de terminal, escriba " ls" y presione C-m. Verá que se interpreta como "retorno", a pesar de que está no en Emacs.

Vea el carácter de control en Wikipedia para obtener detalles sobre los caracteres de control

Para distinguir C-ma partir RETde una interfaz gráfica de usuario de Emacs, se puede cambiar C-ia C-men @nispio 's respuesta :

(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)

Ver también

Constantina
fuente
2
Esto es genial, gracias. Ahora puedo tener C-mcomo prefijo un mapa para múltiples cursores.
John Wiegley