Buscando la solución ALT+LeftArrowKey en zsh

Resuelto Mads Ohm Larsen asked hace 12 años • 14 respuestas

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.

Mads Ohm Larsen avatar Sep 12 '12 13:09 Mads Ohm Larsen
Aceptado

Ejecute caty luego presione las teclas para ver los códigos que envía su acceso directo.
(Presione Ctrl+ Cpara finalizar catcuando 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

lolesque avatar Sep 13 '2012 10:09 lolesque

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 . .

ingrese la descripción de la imagen aquí

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.

Travis avatar Jul 09 '2015 21:07 Travis

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

bindkey -e
bindkey '[C' forward-word
bindkey '[D' backward-word
Rob Sawyer avatar May 07 '2013 04:05 Rob Sawyer

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í.

Vetalll avatar Oct 09 '2018 06:10 Vetalll