¿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?


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


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


2
Esto es genial, gracias. Ahora puedo tener C-mcomo prefijo un mapa para múltiples cursores.
John Wiegley
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.