Reasignación de claves en iterm2


15

Estoy tratando de reasignar algunas de las combinaciones de teclas predeterminadas en iTerm2, y me gustaría entender lo que sucede cuando enlazo las teclas a "Enviar códigos hexadecimales".

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

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


No tiene nada que ver con bash. Etiqueta eliminada

Respuestas:


16

Esos códigos hexadecimales son solo secuencias de bytes. Por ejemplo, mapear una combinación de teclas para 0x66 0x6f 0x6fque se inserte foo. 0xc3 0xa4insertaría ä si usa UTF-8. 0x1b 0x1b 0x5b 0x43significa escape escape [ C.

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

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

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

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

  • ⌥⌦: Enviar ^ [d

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

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

Puede ejecutar ready presionar combinaciones de teclas para ver qué caracteres insertan. Por ejemplo, ⌥ ← inserta ^[^[[Dpor defecto, donde ^[está escape en notación de intercalación .

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


Gracias. Me encuentro con esta respuesta cuando busco una solución para mi pregunta aquí . ¿Cómo puedo buscar el código hexadecimal para una combinación de teclas específica? (en mi caso estoy interesado en las combinaciones Ctrl+Alt+<char>con <char>ser i, j, k, ly u)
Amelio Vázquez-Reina

6

Sugeriría instalar Key Codes ($ 0) por Many Tricks y descubrir los atajos por ti mismo.

Por ejemplo, si desea reasignar 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 directa ( ), debería ...

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

    Ejemplo de códigos clave

  2. De vuelta en iTerm 2, agregue el acceso directo Unicode en iTerm> Preferencias> Teclas

    iTerm envía códigos hexadecimales

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


2

La mejor manera que encontré fue enviar códigos de teclas (como se describe en @pattulus o usar enlaces de teclas vim.

Nota sobre los códigos clave: en realidad, no puede hacer que funcione enviando la cadena Unicode como se describió anteriormente, debe enviar el modificador y la clave juntos en caso de Control+ Dnecesita enviar esto como código: ¿ 0x840101 0x4dónde 0x840101está el modificador de la tecla de control? y se puede obtener a través del código clave .

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

Personalmente, prefiero la vinculación de teclas vim porque es más legible y luego comprenderá lo que ha hecho.


1

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.