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.
Respuestas:
Esos códigos hexadecimales son solo secuencias de bytes. Por ejemplo, mapear una combinación de teclas para
0x66 0x6f 0x6f
que se insertefoo
.0xc3 0xa4
insertaría ä si usa UTF-8.0x1b 0x1b 0x5b 0x43
significaescape 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):
Puede hacer que ⌥⌦ elimine una palabra hacia adelante asignándola a
\ed
:Cambiar ⌥ ← y ⌥ → a
\eb
y\ef
en 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 :Puede ejecutar
read
y presionar combinaciones de teclas para ver qué caracteres insertan. Por ejemplo, ⌥ ← inserta^[^[[D
por defecto, donde^[
está escape en notación de intercalación .Consulte también http://code.google.com/p/iterm2/wiki/Keybindings .
fuente
Ctrl+Alt+<char>
con<char>
seri
,j
,k
,l
yu
)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 ...Abre la aplicación y presiona
Ctrl-D
De vuelta en iTerm 2, agregue el acceso directo Unicode en iTerm> Preferencias> Teclas
Nota: No lo copie y pegue, simplemente escriba Unicode sin espacios.
fuente
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 0x4
dónde0x840101
está 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.
fuente
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.
fuente