Reasignar claves en iterm2

12

Estoy tratando de volver a asignar algunas de las combinaciones de teclas predeterminadas en iTerm2, y me gustaría entender qué sucede cuando vinculo las teclas a "Enviar códigos hexadecimales".

Una publicación anterior me ayudó a comenzar con la reasignación de las combinaciones de teclas ctrl-a y ctrl-e a cmd-left y cmd-right, respectivamente, pero también me gustaría volver a asignar otras combinaciones de teclas. ( Link a la publicación anterior de Stackoverflow ).

Tengo una comprensión vaga de que hay códigos hexadecimales involucrados, pero estoy en un punto en el que no puedo averiguar a dónde ir para entender qué sucede o qué hacer.

    
pregunta Community 28.04.2013 - 03:45

4 respuestas

13

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

Algunas secuencias de bytes como Secuencias de escape ANSI e incluso bytes individuales como los caracteres de control ASCII tienen significados especiales en las terminales.

Para hacer que ⌘ ← y ⌘ → vayan al principio y al final de la línea, puede asignarlos a 0x01 (^ A en notación de carácter) y 0x05 (^ E en notación de carácter):

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

Puedes hacer que ⌥⌦ eliminar una palabra avance asignándola a \ed :

  • : Enviar ^ [d

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

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

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

Consulte también enlace .

    
respondido por el user495470 28.04.2013 - 15:59
6

Sugiero instalar Key Codes ($ 0) por muchos trucos y descubrir los atajos por ti mismo.

Por ejemplo, si desea volver a asignar el acceso directo predeterminado para (reenviar) eliminar un carácter, que es Ctrl-D ( ⌃D ), para que sea tan simple como presionar la tecla de eliminación hacia adelante ( ), debería ...

  1. Abre la aplicación y presiona Ctrl-D

  2. DevueltaeniTerm2,agregueelaccesodirectodeUnicodeeniTerm>Preferencias>Teclas

Nota: no lo copie y pegue, simplemente escriba el Unicode sin espacios.

    
respondido por el pattulus 25.09.2015 - 16:29
2

Echa un vistazo a Karabiner .

Dentro de esta herramienta, puede crear asignaciones personalizadas clave que son específicas de las aplicaciones. Viene con algunas herramientas para ayudar con eso.

    
respondido por el bdecaf 16.07.2014 - 11:19
1

La mejor manera que encontré fue mediante el envío de códigos de teclas (como se describe en @pattulus o mediante el uso de enlaces de teclas vim.

Nota sobre los códigos clave: En realidad, no puede hacer que funcione al enviar la cadena Unicode como se describe anteriormente, debe enviar tanto el modificador como la clave en el caso de Control + D debe enviarlo como código: 0x840101 0x4 donde 0x840101 es el modificador de la clave de control y se puede obtener a través de Key Code .

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

Personalmente prefiero el enlace de clave vim porque es más legible y más adelante entenderás lo que has hecho.

    
respondido por el ExistMe 27.07.2017 - 13:05

Lea otras preguntas en las etiquetas