19 votos

Reasignación de teclas en iterm2

Estoy tratando de reasignar algunas de las combinaciones de teclas por defecto en iTerm2, y me gustaría entender lo que está pasando cuando se vinculan las teclas a "Enviar códigos hexadecimales".

Un post anterior me ayudó a empezar con la reasignación de los combos de teclas ctrl-a y ctrl-e a cmd-izquierda y cmd-derecha, respectivamente, pero me gustaría reasignar otros combos de teclas también. ( Enlace al post anterior de Stackoverflow ).

Tengo una vaga comprensión de que hay códigos hexagonales involucrados, pero estoy en un punto en el que no puedo averiguar dónde ir después para entender lo que está pasando o qué hacer.

0 votos

No tiene nada que ver con bash. Etiqueta eliminada.

20voto

Esos códigos hexadecimales son sólo secuencias de bytes. Por ejemplo, la asignación de una combinación de teclas a 0x66 0x6f 0x6f lo haría insertar foo . 0xc3 0xa4 se insertará ä si se utiliza UTF-8. 0x1b 0x1b 0x5b 0x43 significa escape escape [ C .

Algunas secuencias de bytes como Secuencias de escape ANSI e incluso los bytes individuales, como los caracteres de control ASCII, tienen un significado especial en los terminales.

Para hacer que ⌘← y ⌘→ vayan al principio y al final de línea, puedes asignarles el 0x01 (^A en notación de caret) y el 0x05 (^E en notación de caret):

  • ⌘←: Enviar códigos hexadecimales: 0x01
  • ⌘→: Enviar códigos hexadecimales: 0x05

Puede hacer que ⌥⌦ borre una palabra hacia adelante asignándola a \ed :

  • ⌥⌦: Enviar ^[ d

Cambiando ⌥← y ⌥→ por \eb y \ef en las preferencias de iTerm también los cambiaría en los programas que no soportan readline o los keybindings estilo emacs. Otra opción es añadir esto a ~/.inputrc :

"\e\e[D": backward-word
"\e\e[C": forward-word

Puede ejecutar read y pulsar combinaciones de teclas para ver qué caracteres insertan. Por ejemplo ⌥← inserta ^[^[[D por defecto, donde ^[ es escapar en notación caret .

Ver también http://code.google.com/p/iterm2/wiki/Keybindings .

0 votos

Gracias. Me encuentro con esta respuesta al buscar una solución para mi pregunta aquí . ¿Cómo puedo buscar el código hexadecimal de una determinada combinación de teclas? (en mi caso me interesan las combinaciones Ctrl+Alt+<char> con <char> ser i , j , k , l y u )

9voto

pattulus Puntos 162

Le sugiero que instale Códigos clave ($0) de Many Tricks y descubre los atajos por ti mismo.

Por ejemplo, si quieres reasignar el atajo de teclado por defecto para borrar (hacia adelante) un carácter - que es Ctrl-D ( ⌃D ) - para que sea tan sencillo como pulsar la tecla de borrar hacia delante ( ), usted

  1. Abra la aplicación y pulse Ctrl-D

    Key Codes Example

  2. De vuelta en iTerm 2, añada el acceso directo Unicode en iTerm > Preferencias > Teclas

    iTerm Send Hex Codes

Nota: No lo copies y pegues, sólo escribe el Unicode sin espacios.

1 votos

El valor de la acción que se introduce, debe ser 0x4 no 4/0x4

3voto

ExistMe Puntos 131

La mejor manera que he encontrado es con el envío de códigos de teclas (como se describe por @pattulus o el uso de enlaces de teclas vim.

Nota sobre los códigos de las llaves: En realidad, no se puede hacer funcionar enviando la cadena unicode como se ha descrito anteriormente, es necesario enviar tanto el modificador como la clave para conseguirlo en el caso de Control + D necesitas enviar esto como código: 0x840101 0x4 donde 0x840101 es el modificador de la tecla de control y puede obtenerse a través de Código de la llave .

Nota sobre el envío como secuencia vim : Como se describe en iTerm2 documentación puede enviar un código clave en formato vim-bindings como \<C-d> para enviar Control + D (nota que \ es importante).

Personalmente, prefiero la vinculación de teclas de vim porque es más legible y después entenderás lo que has hecho.

2voto

Bratch Puntos 1531

Comprueba Mosquetón .

Dentro de esta herramienta se pueden crear mapeos personalizados de claves que son específicos para las aplicaciones. Viene con algunas herramientas para ayudar con eso.

0voto

Juan Puntos 54

PreferencesProfileKeys añadir los siguientes accesos directos:


Enviar secuencia de escape Esc+ b

Enviar secuencia de escape Esc+ f

Enviar secuencia de escape Esc+ [H

Enviar secuencia de escape Esc+ [F

←Delete Enviar código hexadecimal 0x18 0x7f (añadir bindkey "^X\\x7f" backward-kill-line a .zshrc )

←Delete Enviar código hexadecimal 0x1B 0x08

Del→ Enviar código hexadecimal 0x0b

Del→ Enviar secuencia de escape d

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