13 votos

¿Cómo puedo enviar C-/ (es decir, de control-barra) a la terminal?

Estoy tratando de ejecutar Emacs en un terminal. He activado el "uso de la opción como meta" en la terminal de preferencias y por lo tanto es de aproximadamente el 95% de trabajo a la derecha.

La secuencia de teclas ctrl-/ (o en Emacs notación de C-/) es "deshacer". Esta secuencia de teclas sólo hace que el terminal a sonar una campana. ¿Cómo puedo solucionar este problema?

19voto

Nip Puntos 362

Control-/ no es una parte del conjunto de estándar de los códigos de control. No es directamente representables como una pulsación de tecla en muchas emulaciones de terminal. Tal pulsación de tecla es sólo correctamente detectable en ciertos específico de la plataforma "scancode modos" o "GUI mode" (donde la API le dice exactamente qué teclas y modificadores). El emulador de terminal está sonando porque efectivamente es un inválido de pulsación de tecla.

El estándar de los códigos de control sólo cubren el "Control" de las versiones de

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

En la mayoría de emulador de terminal programas que se ejecutan con la mayoría de los diseños de teclado es posible que necesite pulsar Shift para generar algunos de los "códigos de Control":

  • C-@ es el Control deCambio2 (desde @ es Turno de2)
  • C-^ es el Control deCambio de6 (desde ^ es Turno de6)
  • C-_ es el Control deCambio- (desde _ es Cambio-)
  • Sin Embargo, El C-? no siempre puede ser el Control deCambio/ (desde ? es Shift/); C-? normalmente se genera por cualquiera de Retroceso (en los teclados Apple, la clave de la etiqueta sólo "eliminar" sin el símbolo adicional ⌦) o Eliminar (el uno con ⌦ en los teclados Apple).

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

5voto

Kenji Noguchi Puntos 101

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

Sólo los emuladores que se ajuste estrictamente a VT100 especificación no se puede enviar Ctrl-/. Creo que la aplicación Terminal es uno de ellos.

VT100 máscaras de 2 bits más significativos de 7 bits ASCII al pulsar la tecla control. / es 0x2f, o es 0x6f. Cuando a los 2 bits son enmascarados que ambos son 0x0f. VT100 puede enviar Ctrl-o pero no Ctrl-/.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X