Recientemente cambié de bash a zsh, sin embargo, extraño mi Alt+ LeftArrowKeyy Alt+ RightArrowKeypara ir y venir de una palabra a la vez.
En este momento, si presiono Alt+ LeftArrowKey, retrocedo un par de letras y luego estoy atascado. No iré más hacia atrás y no volverá al final de la línea con Alt+ RightArrowKeycomo era de esperar. Ni siquiera puedo usar las teclas de flecha para ir al final de la línea, solo al penúltimo. No se pueden ingresar nuevos caracteres en la línea o, de hecho, eliminar.
¿Cómo recupero mi querido acceso directo?
Estoy en Mac OS X usando Terminal si eso es importante.
^[[D
me informaba mientras que ctrl + v informaba^[OD
. La sugerencia de Ctrl + v funcionó, pero la de gato no. Además, ctrl + v informaba lo mismo para alt + <- y alt + ->. Pude agregar estos dos mirando la salida del gato y reemplazando cualquier "[[" con "O"^[^[[C
para palabra hacia adelante y^[^[[D
para palabra hacia atrás, pero la actualización de estos en .zshrc no funcionó por alguna razón.bindkey "^[^[[D" backward-word
ybindkey "^[^[[C" forward-word
en ~ / .zprofile funcionó para mí!Para cualquiera que use iTerm, independientemente del shell
Todas las soluciones ofrecidas aquí tienen un enfoque inverso en mi opinión. Básicamente, le está diciendo a su shell que escuche alguna secuencia de esc u otra combinación de teclas que haya configurado en su terminal, creando problemas de compatibilidad cuando cambia shells (si usa SSH en otro shell, cambie de BASH a ZSH, etc. y pierde algunas, si no todas, las 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. Entonces, la forma más fácil que he encontrado para crear la combinación de teclas para una acción particular en el shell es decirle a su aplicación de terminal que se una a los atajos de teclado predeterminados que son consistentes en todos los shells.
Escribí una solución de compresión para hacer que su terminal responda tan cerca de las combinaciones de teclas mac nativas aquí
Abra las preferencias de iTerm ⌘+ ,y navegue a la
Profiles
pestaña (Keys
se puede usar la pestaña, pero al agregar la combinación de teclas a su perfil le permite guardar su perfil y sincronizarlo en varias computadoras) ykeys
la subpestaña e ingresar lo siguiente:Mueve el cursor una palabra hacia la izquierda
Mueve el cursor una palabra hacia la derecha
Y eso debería darle el comportamiento deseado no solo en ZSH, sino también si ingresa SSH en un servidor que ejecuta BASH, irb / pry, nodo, etc.
fuente
bindkey | grep forward-word
debería ver"^[f" forward-word
devuelto pero si no lo hace, tiene 2 opciones. mapa a uno de los otros devueltos, o agregar"^[f" forward-word
a su.zshrc
."^[f"
parece ser el enlace más utilizado paraforward-word
usar entre shells y el único configurado de manera predeterminada en mi versión de bash.Agregar lo siguiente a ~ / .zshrc funcionó para mí en OSX Mountain Lion.
fuente
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
En MacOS High Siera 10.13.6 o Mojave 10.14.2 y usando iTerm2 con ZSH Para moverme de las palabras, tengo que poner así:
Otra solución no funciona bien
fuente
Aunque no responde estrictamente a su pregunta, el enlace predeterminado para
forward-word
ybackward-word
sonalt-f
resp.alt-b
.Esto funciona en todas partes, no requiere que abandones la fila de inicio y tiene una buena propiedad mnemónica (f = adelante, b = atrás), a la vez que es consistente con
ctrl-f
yctrl-b
siendoforward-character
ybackward-character
.¡Rasga tus flechas!
fuente
Para que funcione, utilicé esta respuesta , sin embargo, tuve que cambiar los códigos (izquierda <-> derecha)
⌥ + ← Enviar códigos hexadecimales: 0x1b 0x66
⌥ + → Enviar códigos hexadecimales: 0x1b 0x62
y agregue lo siguiente a mi
~/.zshrc
fuente
En Mavericks (10.9.4) el código es 1; 5 ... así que para vincular alt con flechas tengo mi .zshrc usando esto:
Puede usar CTRL + V y luego el comando que desea usar
en Yosemite usa la solución de Rob
fuente
bindkey "[C" forward-word bindkey "[D" backward-word
En zsh, puede usar el
bindkey
comando para ver métodos abreviados de teclado.Úselo
bindkey
para explorar las opciones disponibles sin combinaciones de teclas personalizadas.Es decir,
^[b
retroceder una palabra y^[f
avanzar una palabra.fuente