Inicié sesión en uno de los servidores del proveedor de alojamiento y noté que ALT + izquierda y ALT + derecha se movían entre palabras en un indicador de shell en la pantalla GNU.
¿Qué tipo de combinaciones de teclas necesito configurar y dónde obtener este comportamiento para mi OS X zsh local ejecutándose en iTerm2?
keyboard-shortcuts
zsh
iterm2
key-binding
Mikko Ohtamaa
fuente
fuente
FOO=BAR
es una palabra para zsh y 2 palabras para bash. Del mismo modo, si establece el cursor al final defoo --bar
y hace alt + retroceso, en bash tendráfoo --
y en zsh tendráfoo
. Zsh agrega muchas características a bash, pero también tiene muchos valores predeterminados locos para anular.Respuestas:
Encontré la solución aquí: https://coderwall.com/p/h6yfda . Copiará las partes más importantes, en caso de que el enlace se caiga.
fuente
Estás buscando las palabras clave
backward-word
yforward-word
. Entonces, si está en un shell donde las combinaciones de teclas no funcionan, intentebindkey -L | grep backward-word
verificar si están configuradas. Hay más información sobre esto en zshzle (1) .Puede configurar manualmente la combinación de teclas escribiendo algo como esto:
También tuve algunos problemas con las combinaciones de teclas y el problema era casi siempre que la tecla Opción / Alt enviaba algo diferente al Meta / Escape esperado.
fuente
emacs-forward-word
yemacs-backward-word
. La diferencia es que saltas hacia el final de la palabra y hacia atrás al principio de la palabra en lugar de saltar siempre al principio de la palabra.No puedo hablar por iTerm, pero estas son las combinaciones de teclas que utilicé para resolver este problema en el Terminal GNOME, en Fedora 19, ejecutando ZSH 5.0.7 con Oh-my-zsh:
donde
\e
== La secuencia de teclas de escape (como se documenta en la sección 4.1.1 )y
[
==O
(O mayúscula; como se documenta en la sección 4.2.1 ), en algunos casos. Por ejemplo, bajotmux
esta sustitución es necesaria para mí, sin embargo, sintmux
ella se requiere que no se realice ninguna sustitución y[
==[
Los códigos clave para una secuencia se pueden obtener usando
cat
y presionando la secuencia deseada. Por ejemplo, los resultados de presionar<Alt+Right>
deben interpretarse así:^[
==\e
== La secuencia de teclas de escape[
==[
sintmux
OR[
==O
(o mayúscula) contmux
1;3
== No estoy seguro de esto, pero lógicamente debería significar<Alt>
C
== La tecla de flecha derechaLuego, esta secuencia se da
bindkey
en el~/.zshrc
archivo para persistencia, como primer argumento, y está vinculada , lo que significa que la pulsación de tecla en el argumento uno ejecutará un comando de editor particular (o widget en términos zsh), al widget, que en el primer línea del ejemplo anterior esforward-word
.Se
~/.zshrc
debe volver a obtener después de que estos dos comandos se agreguen con:$ source ~/.zshrc
Ahora, una molestia en mi sistema es que esta combinación en particular provocó que el emulador de terminal emitiera un pitido cada vez que se emitió el comando, esto lo solucioné desactivando el
'Edit'->'Profile Preferences'->'Terminal Bell'
caja.fuente
Lo que funcionó mejor para mí en lo que respecta a hacer que la navegación de línea de comandos de iTerm2 sea más intuitiva para mí (soy un adulto joven que no creció en una línea de comandos, pero pasé mucho tiempo en editores de texto e IDE) fue a:
Natural Text Editing
opción en el menú desplegable Presets.Esto predetermina las claves del editor a una disposición más estándar sin que tenga que modificar cada opción individualmente.
fuente
Le sugiero que use
zkbd
para configurar la combinación de teclas. Lo uso y Alt+ Left/ Alt+ Rightfunciona bien en iTerm2. Verzshcontrib(1)
para más detalles sobre zkbd.fuente