Puedo ver que Ctrl+ left/ rightsalta al principio / final de la línea. ¿Cómo cambiar esto a Cmd+ left/ right arrow?
Para que Alt+ left/ right arrowfuncione correctamente para el salto de palabras, sigue este artículo .
Puedo ver que Ctrl+ left/ rightsalta al principio / final de la línea. ¿Cómo cambiar esto a Cmd+ left/ right arrow?
Para que Alt+ left/ right arrowfuncione correctamente para el salto de palabras, sigue este artículo .
Respuestas:
Agregue en iTerm2 las siguientes teclas de acceso directo de perfil
FOR ACTION SEND
⌘← "SEND HEX CODE" 0x01
⌘→ "SEND HEX CODE" 0x05
⌥← "SEND ESC SEQ" b
⌥→ "SEND ESC SEQ" f
Aquí hay un visual para aquellos que lo necesitan
⌘← "SEND ESC SEQ" OH
para Inicio y ⌘→ "SEND ESC SEQ" OF
para Fin (esos son mayúsculas y no ceros). Esto simula presionar las teclas Inicio y Fin, y como tal funcionará en bash, vim, etc.
Para saltar entre las palabras y el inicio / final de las líneas en iTerm2, elija una de las dos soluciones a continuación.
Si no desea utilizar el ajuste predeterminado "Edición de texto natural" mencionado anteriormente, puede asignar las teclas que necesita manualmente:
[+]
iconoMueve el cursor una palabra hacia la izquierda
0x1b 0x62
Mueve el cursor una palabra hacia la derecha
0x1b 0x66
Mueve el cursor al comienzo de la línea
0x01
Mueve el cursor al final de la línea
0x05
Eliminar palabra
0x1b 0x08
Eliminar linea
0x15
Deshacer
0x1f
No olvide eliminar los enlaces anteriores :
Says send Hex Codes: 0x1b 0x1b 0x5b 0x44
. Sería bueno saber en caso de que la gente no quisiera eliminar esto.
Veo que ya hay muchas buenas respuestas, pero esto debería proporcionar la funcionalidad más cercana a OSX nativa posible en más que solo su shell. Verifiqué que esto funciona en sesiones ZSH, Bash, nodo, python -i, iex e irb / pry (usando gema rb-readline para readline, pero debería funcionar para todos).
Abra las preferencias de iTerm ⌘+ ,y navegue a la Profiles
pestaña ( Keys
se puede usar la pestaña, pero agregar la combinación de teclas a su perfil le permite guardar su perfil y sincronizarlo en varias computadoras) y keys
la subpestaña e ingresar lo siguiente:
Eliminar todos los caracteres que quedan del cursor
⌘+ ←DeleteEnviar códigos hexadecimales:
0x15
Más compatible, pero la funcionalidad a veces es eliminar toda la línea en lugar de solo los caracteres a la izquierda del cursor. Yo personalmente uso esto y luego sobrescribo mi tecla de enlace zsh para^U
eliminar solo las cosas a la izquierda del cursor (ver más abajo).o
0x18 0x7f
Menos compatible, no funciona en el nodo y no funcionará en zsh de forma predeterminada, consulte a continuación para corregir zsh (bash / irb / pry debería estar bien), realiza la funcionalidad deseada cuando funciona.
Eliminar todos los caracteres a la derecha del cursor
⌘+ fn+ ←Deleteo ⌘+ Delete→Enviar códigos hexadecimales:
0x0b
Eliminar una palabra a la izquierda del cursor
⌥+ ←DeleteEnviar códigos hexadecimales:
0x1b 0x08
Rompe el IEX de Elixir, parece funcionar bien en cualquier otro lugaro
0x17
Funciona en todas partes, pero no se detiene en los saltos de palabras normales en IRB y en su lugar se eliminará hasta que vea un espacio literal.
Eliminar una palabra a la derecha del cursor
⌥+ fn←Deleteo ⌥+ Delete→Enviar códigos hexadecimales:
0x1b 0x64
Mueve el cursor al frente de la línea
⌘+ ←Enviar códigos hexadecimales:
0x01
Mueve el cursor al final de la línea
⌘+ →Enviar códigos hexadecimales:
0x05
Mueve el cursor una palabra hacia la izquierda
⌥+ ←Enviar códigos hexadecimales:
0x1b 0x62
Mueve el cursor una palabra hacia la derecha
⌥+ →Enviar códigos hexadecimales:
0x1b 0x66
Deshacer
⌘+ zEnviar códigos hexadecimales:
0x1f
Rehacer normalmente no está limitado en bash, zsh o readline, por lo que podemos configurarlo en un código hexadecimal no utilizado que luego podemos arreglar en zsh
⇧+ ⌘+ Zo ⌘+ yEnviar códigos hexadecimales:
0x18 0x1f
Ahora cómo arreglar cualquier que no funcione
Para zsh, puede configurar el enlace para los ⌘+ ←Deletey ⇧+ ⌘+ Z/ ⌘+ aún no funcionales yejecutando:
# changes hex 0x15 to delete everything to the left of the cursor,
# rather than the whole line
$ echo 'bindkey "^U" backward-kill-line' >> ~/.zshrc
# binds hex 0x18 0x7f with deleting everything to the left of the cursor
$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc
# adds redo
$ echo 'bindkey "^X^_" redo' >> ~/.zshrc
# reload your .zshrc for changes to take effect
$ source ~/.zshrc
No puedo encontrar una solución para agregar rehacer en bash o readline, por lo que si alguien conoce una solución para cualquiera de esos, comente a continuación e intentaré agregarlos.
Para cualquiera que busque la tabla de búsqueda sobre cómo convertir secuencias de teclas a hexadecimales, encuentro esta tabla muy útil.
$
frente de echo
(¿solo eliminarlo?). Aparte de eso, es perfecto. Gracias.
bindkey | grep "\^\[b"
y eso te dirá si algo más lo sobrescribe después de que se haya configurado. Solo debería regresar #=> "^[b" backward-word
. Si se sobrescribe, tendrá que encontrar dónde se sobrescribe y eliminarlo. Si eso no es posible, puede ejecutarlo echo 'bindkey "^[b" backward-word' >> ~/.zshrc
, lo agregará a la última línea de su .zshrc
, luego reinicie iTerm y debería funcionar
keys
pestaña en las preferencias de iTerm para ver si también está asignando ⌥
+ ←
a algo. Si es así, retíralo. Puede probar si b
está funcionando correctamente presionando rápidamente la esc
liberación y luego presionando b
. Eso debería saltar una palabra a la izquierda. Alternativamente, puede asignar ⌥
+ ←
a hexadecimal 0x1b 0x42
o 0x1b 0x5b 0x31 0x3b 0x35 0x44
. Verifiqué que ambos funcionen para mí. Sin embargo, realmente creo que se ha sobrescrito ⌥
+ ←
en iTerm, ya sea en su profile
keys
pestaña o keys
pestaña.
Siga el tutorial que enumeró anteriormente para configurar sus preferencias clave en iterm2 .
En iTerm 3.0.12 puede cambiar a Natural Text Editing
preestablecido:
iTerm → Preferencias → Perfiles → Teclas
Advertencia Como es un valor predeterminado, puede anular las teclas que ha enlazado anteriormente. Por lo tanto, es mejor guardar las combinaciones de teclas actuales antes de aplicar un valor predeterminado.
Para una referencia rápida de cualquiera que quiera ir al final de la línea o al inicio de la línea en iTerm2, el enlace anterior http://hackaddict.blogspot.com/2007/07/skip-to-next-or-previous-word- in-iterm.html señala que en iTerm2:
Utilicé la respuesta de Travis y creé un perfil dinámico que puede importar según sus instrucciones.
GabLeRoux / iterm2-macos-dynamic-profile
Las instrucciones están en el archivo Léame y es mucho más rápido importar esto que agregarlas todas manualmente. Respondí esto según la solicitud de @ gooli porque estaba oculto en un comentario. Espero que disfrutes esto 🍻
Solo para ayudar a cualquiera que esté teniendo el mismo problema pero específicamente usando el shell Zsh con iTerm 2. Resulta que Zsh no lee /etc/inputrc
correctamente , y por lo tanto no comprende las teclas que configura a través de las preferencias!
Para solucionar esto, debe agregar algunas asociaciones de teclas a su .zshrc
archivo, como:
# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
Tenga en cuenta las barras invertidas en el ejemplo anterior antes de la "e", el artículo vinculado no las muestra, así que agréguelas a su .zshrc
archivo al agregar enlaces.
Los viejos enlaces de emacs aún pueden funcionar en iterm2 y en la terminal os x:
Preferencias -> Perfiles -> Teclas (subpestaña en perfiles)
Left/Right option <kbd>⌥</kbd> key acts as +Esc
(similar en terminal os x)Esto debería habilitar alt- fy alt- bpara mover palabras por palabras. (Todavía ctrl- ay ctrl-e siempre trabajar como de costumbre)
Si se establece como meta
esos enlaces antiguos funcionarán mientras algunos enlaces iterm2 no estén disponibles.
Como se explica aquí , puede hacerlo con unos simples pasos:
Por defecto, los saltos de palabras (opción + → o ←) y las eliminaciones de palabras (opción + retroceso) no funcionan. Para habilitarlos, vaya a "iTerm → Preferencias → Perfiles → Teclas → Cargar preajuste ... → Edición de texto natural → Explosiones de Boom! Head"
bind -p
mostrará una lista de claves escapadas en su shell, que podría ayudarlo a darle más ideas / términos de búsqueda.
bind -p
solo funciona en shells Bourne (bash, sh) para zsh, csh tcsh, use bindkey
.
explicado en https://aaronaddleman.com/articles/hexcodes-and-iterm/
puede usar xxd -psd
para obtener el código hexadecimal clave.
Para mí, la siguiente combinación funcionó:
| Key Action Esc+ End result |
|-----------------------------------------------------|
| ⌘← Send Escape Sequence a Send ^[ a |
| ⌘→ Send Escape Sequence e Send ^[ e |