Buscando la solución ALT+LeftArrowKey en zsh
Recientemente cambié de bash a zsh, sin embargo, extraño mis Alt+ LeftArrowKeyy Alt+ RightArrowKeypara avanzar y retroceder palabra a palabra.
Ahora mismo, si presiono Alt+ LeftArrowKeyretrocedo un par de letras y luego me quedo estancado. No retrocederé más y no regresaré al final de la línea con Alt+ RightArrowKeycomo esperaría. Ni siquiera puedo usar las teclas de flecha para ir al final de la línea, solo al penúltimo. Tampoco se pueden ingresar nuevos caracteres en la línea ni eliminarlos.
¿Cómo recupero mi querido atajo?
Estoy en Mac OS X usando Terminal si eso es importante.
Ejecute cat
y luego presione las teclas para ver los códigos que envía su acceso directo.
(Presione Ctrl+ Cpara finalizar cat
cuando haya terminado).
Para mí, (ubuntu, konsole, xterm) presionar Alt+ ←envía ^[[1;3D
, así que pondría mi .zshrc
bindkey "^[[1;3C" forward-word
bindkey "^[[1;3D" backward-word
(En realidad, prefiero usar Ctrlla flecha + para mover palabra por palabra, como en un cuadro de texto normal en la interfaz gráfica de usuario de Windows o Linux).
Pregunta relacionada: Corregir la configuración de las teclas (Inicio/Fin/Insertar/Eliminar) en .zshrc al ejecutar Zsh en Terminator Terminal Emulator
Para cualquiera que use iTerm, independientemente del shell
En mi opinión, todas las soluciones que se ofrecen aquí adoptan un enfoque al revés. Básicamente, le estás diciendo a tu shell que escuche alguna secuencia esc u otra combinación de teclas que hayas configurado en tu terminal, lo que crea problemas de compatibilidad cuando cambias de shell (si utilizas SSH en algún otro shell, cambia de BASH a ZSH, etc. y pierdes). algunas, si no todas, de sus combinaciones de teclas).
La mayoría de los shells tienen un conjunto de secuencias predeterminadas que vienen predefinidas. Además, si bien no son 100% consistentes, están lo suficientemente cerca. Entonces, la forma más fácil que he encontrado para crear combinaciones de teclas para una acción particular en el shell es decirle a su aplicación terminal que se vincule a las combinaciones de teclas predeterminadas que son consistentes en todos los shells.
Escribí una solución compresiva para lograr que su terminal responda lo más cerca posible de las combinaciones de teclas nativas de Mac . .
Abra las preferencias de iTerm ⌘+ ,y navegue hasta la pestaña Perfiles ( se puede usar la pestaña Claves , pero agregar una combinación de teclas a su perfil le permite guardar su perfil y sincronizarlo con varias computadoras) y la subpestaña de claves , haga clic en Asignaciones de claves e ingrese el siguiente:
Mover el cursor una palabra a la izquierda
⌥+ ←Enviar códigos hexadecimales:
0x1b 0x62
Mover el cursor una palabra hacia la derecha
⌥+ →Enviar códigos hexadecimales:
0x1b 0x66
Y eso debería brindarle el comportamiento deseado no solo en ZSH, sino también si utiliza SSH en un servidor que ejecuta BASH, irb/pry, node, etc.
Agregar lo siguiente a ~/.zshrc funcionó para mí en OSX Mountain Lion.
bindkey -e
bindkey '[C' forward-word
bindkey '[D' backward-word
En MacOS High Siera 10.13.6 o Mojave 10.14.2 y usando iTerm2 con ZSH Para pasar de palabras tengo que poner así:
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
Otra solución no funciona para mí.