theme best awesome shell key zsh

shell - best - Buscando la solución ALT+LeftArrowKey en zsh



zsh god (7)

Recientemente cambié de bash a zsh, sin embargo extraño a mi Alt + LeftArrowKey y Alt + RightArrowKey para ir y venir una palabra a la vez.

En este momento, si presiono Alt + LeftRrowKey vuelvo un par de letras y luego me quedo atascado. No retrocederé más y no volveré al final de la línea con Alt + RightArrowKey como lo esperaría. Ni siquiera puedo usar las teclas de flecha para ir al final de la línea, solo a la segunda para durar. No se pueden ingresar nuevos caracteres en la línea, ni tampoco se eliminan.

¿Cómo puedo recuperar mi amado atajo?

Estoy en Mac OS X usando Terminal si eso es importante.


Agregar lo siguiente a ~ / .zshrc funcionó para mí en OSX Mountain Lion.

bindkey -e bindkey ''[C'' forward-word bindkey ''[D'' backward-word


Aunque no responde estrictamente a su pregunta, la vinculación predeterminada para forward-word backward-word forward-word y backward-word es alt-f resp. alt-b .

Esto funciona en todas partes, no requiere que salgas de la fila de inicio y tiene una propiedad mnemotécnica agradable (f = adelante, b = atrás), mientras que también es consistente con ctrl-f y ctrl-b son forward-character backward-character forward-character y backward-character .

Saque sus teclas de flecha!


En MacOS High Siera 10.13.6 y usando iTerm2 con ZSH Para pasar de las palabras, tengo que poner así:

bindkey "/ e / e [D" back-word bindkey "/ e / e [C" forward-word

Otra solución no funciona para rme.


En Mavericks (10.9.4) el código es 1; 5 ... así que para enlazar alt con flechas tengo mi .zshrc usando esto:

bindkey "^[[1;5C" forward-word bindkey "^[[1;5D" backward-word

Puede usar CTRL + V y luego el comando que desea usar

en Yosemite usar la solución de Rob


Para que funcionara, utilicé esta respuesta , sin embargo tuve que intercambiar los códigos (izquierda <-> derecha)

⌥ + ← Enviar códigos hexadecimales: 0x1b 0x66
⌥ + → Enviar códigos hexadecimales: 0x1b 0x62

y agrega lo siguiente a mi ~/.zshrc

bindkey -e bindkey "^[b" forward-word bindkey ''^[f'' backward-word


Para cualquiera que use iTerm, sin importar el shell.

Todas las soluciones ofrecidas aquí toman un enfoque hacia atrás en mi opinión. Básicamente, le está diciendo a su shell que escuche una secuencia esc u otro enlace de teclas que haya establecido en su terminal, creando problemas de compatibilidad cuando cambie shells (si hace SSH en otro shell, cambie de BASH a ZSH, etc. y perderá) algunas, si no todas sus combinaciones de teclas).

La mayoría de los shells tienen un conjunto de secuencias predeterminadas que vienen pre-enlazadas. Además, aunque no son 100% consistentes, están lo suficientemente cerca. Por lo tanto, la forma más sencilla que he encontrado para crear un enlace de teclas para una acción en particular en el shell es decirle a su aplicación de terminal que se enlace a los enlaces de teclas predeterminados que son consistentes entre los shells.

Escribí una solución de compresión para que su terminal responda lo más cerca posible de las combinaciones de teclas nativas de mac here

Abra las preferencias de iTerm + y navegue a la pestaña Profiles (la pestaña Keys se puede usar, pero agregar un enlace de teclas a su perfil le permite guardar su perfil y sincronizarlo con varias computadoras) y la subpestaña de keys e ingresar lo siguiente:

Mueve el cursor una palabra a la izquierda

+ Enviar códigos hexadecimales: 0x1b 0x62

Mueve el cursor una palabra hacia la derecha

+ Enviar códigos hexadecimales: 0x1b 0x66

Y eso debería proporcionarle el comportamiento deseado no solo en ZSH, sino también si utiliza SSH en un servidor que ejecuta BASH, irb / pry, nodo, etc.


Ejecute cat luego presione las teclas para ver los códigos que envía su acceso directo.
(Presiona Ctrl + C para matar al cat cuando hayas terminado).
Para mí, (ubuntu, konsole, xterm) presionando Alt + envía ^[[1;3D , así que pondría en mi .zshrc

bindkey "^[[1;3C" forward-word bindkey "^[[1;3D" backward-word

(En realidad, prefiero usar Ctrl + flecha para mover palabra por palabra, como en un cuadro de texto normal debajo de Windows o linux gui).

Pregunta relacionada: Arreglar la configuración de las teclas (Inicio / Fin / Insertar / Eliminar) en .zshrc cuando se ejecuta Zsh en Terminator Terminal Emulator