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