¿Cómo envío C- / (es decir, barra de control) al terminal?

12

Estoy tratando de ejecutar Emacs en una terminal. He activado la "opción de uso como meta" en las preferencias del terminal, por lo que funciona correctamente en un 95%.

La secuencia de teclas ctrl- / (o en la notación C- / de Emacs) es "deshacer". Esta secuencia de teclas solo hace que el terminal suene una campana. ¿Cómo soluciono esto?

    
pregunta Kevin Peterson 06.09.2011 - 01:47

2 respuestas

18

Control- / no es parte del conjunto de códigos de control estándar . No se puede representar directamente como una pulsación de tecla en muchas emulaciones de terminal. Dicha pulsación de tecla solo se puede detectar correctamente en ciertos "modos de modo de escena" o "modo GUI" específicos de la plataforma (donde la API le indica exactamente qué teclas y modificadores se están utilizando). Su emulador de terminal emite un pitido porque en realidad no es una combinación de teclas válida.

Los códigos de control estándar solo cubren las versiones de "Control" de

  • @ A - Z [\]^_ (ASCII 0 - 31), y
  • ? (ASCII 127)

En la mayoría de los programas de emulador de terminal que se ejecutan con la mayoría de los diseños de teclas de EE. UU. es posible que deba presionar Mayús para generar algunos de los "Códigos de control":

  • C- @ es Control Shift 2 (ya que @ es Shift 2 )
  • C- ^ es Control Shift 6 (ya que ^ es Shift 6 )
  • C-_ es Control Shift - (ya que _ es Shift - )
  • Sin embargo, C-? puede que no siempre sea Control Shift / (ya que ? es Shift / ); DO-? generalmente se genera mediante Retroceso (en los teclados de Apple, la tecla con la etiqueta "eliminar" sin el símbolo adicional ⌦) o Eliminar (la que tiene en los teclados de Apple).

En Emacs basado en tty, normalmente puedes usar C-_ para undo en lugar de C- /.

    
respondido por el Chris Johnsen 06.09.2011 - 09:33
3

Ctrl- / envía 0x1f que es equivalente a Ctrl-_ desde los días de VT102. Hay muchos emuladores VT100 pero en realidad son emuladores VT102. iTerm2 funciona porque está siguiendo este comportamiento.

Solo los emuladores que cumplen estrictamente con la especificación VT100 no pueden enviar Ctrl- /. Creo que la aplicación Terminal es una de ellas.

VT100 enmascara 2 bits más significativos de 7 bit ASCII cuando se presiona la tecla de control. / es 0x2f, o es 0x6f. Cuando los 2 bits están enmascarados, ambos son 0x0f. VT100 puede enviar Ctrl-o pero no Ctrl- /.

    
respondido por el Kenji Noguchi 13.02.2016 - 09:35

Lea otras preguntas en las etiquetas