7 votos

Terminal: mapeo de la tecla super/comando en stty

Quiero reasignar los accesos directos del terminal (En particular, quiero reasignar INTR de CTRL+C a Command+C ) en la Terminal.

Así que estas son mis fijaciones actuales de stty

$ stty -a
speed 38400 baud; 38 rows; 179 columns;
lflags: icanon isig iexten echo echoe echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

Y por ejemplo si quieres remapear algo sería como

stty intr \^c

Qué mapas SIGINT a CTRL+C

Pero quiero hacer un mapa SIGINT a COMMAND+C . Algo así (que no es válido):

stty intr c

Ahora sé que el terminal no reconoce realmente la tecla Comando, pero ¿hay alguna forma creativa de hacerlo?

Nota: Sé que se puede hacer con ITerm2 pero me pregunto si hay una manera de hacerlo con el Terminal vainilla.

Gracias

3voto

Shamus Puntos 1

@Niklas He solucionado el problema, pero no usando stty. En su lugar, he utilizado Karabiner-Elements para hacer una configuración personalizada en las teclas de la Terminal (sin afectar al resto de mis bindings).

Básicamente, instalas la aplicación Karabiner-Elements y luego escribes una regla de "modificaciones complejas" en el archivo karabiner.json para intercambiar lo que quieras. Aquí es una guía sobre cómo configurar la configuración json.

Mi karabiner.json se parece a esto:

{
  "name" : "com.apple.Terminal",
  "simple_modifications" : {
    "left_option" : "left_control",
    "left_command" : "left_option",
    "right_control" : "right_command",
    "right_option" : "right_control",
    "right_command" : "right_option",
    "left_control" : "left_command"
  },
  "complex_modifications" : {
    "rules" : [
      {
        "manipulators" : [
          {
            "to" : [
              {
                "key_code" : "c",
                "modifiers" : [
                  "left_command"
                ]
              }
            ],
            "type" : "basic",
            "from" : {
              "key_code" : "c",
              "modifiers" : {
                "mandatory" : [
                  "left_control"
                ],
                "optional" : [
                  "any"
                ]
              }
           }
        ]
      },
      ... more rules for all the stty characters, etc
    ]
  }
}

0voto

Laura Puntos 46

Sólo para usuarios de iTerm2

Sólo tienes que añadir un enlace de teclas en Preferencias. Preferencias -> Teclas -> Enlaces de teclas. Agregue una nueva combinación de teclas, elija su atajo de teclado y elija la acción como Enviar código hexadecimal. Por ejemplo, he configurado Y a Ctl-C (interrupción).

X03 hex code is for interrupt Siga esto enlace para encontrar los códigos hexadecimales de los códigos de control Ascii (caracteres de control, controles C0).

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