Actualmente, tengo lo siguiente en mi .zshrc:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
Sin embargo, esto solo parece coincidir con el contenido de mi entrada actual antes de que ocurra un carácter de espacio. Por ejemplo, sudo ls /
coincidirá con cada línea de mi historial que comience sudo
, mientras que me gustaría que solo coincida con las líneas que coinciden con toda mi entrada. (es decir sudo ls /etc
, coincidiría, pero no sudo cat /var/log/messages
)
¿Qué necesito cambiar para obtener el comportamiento deseado?
Aquí está mi .zshrc completo en caso de que sea relevante: https://gist.github.com/919566
zsh proporciona esta funcionalidad utilizando
Ex.
Encuentra el código clave exacto por
ctrl+vKEY
Ex.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
etc.
fuente
$terminfo[kcuu1]
, <kbd> Abajo </kbd> es$terminfo[kcud1]
.Esta publicación de blog de 2013 recomienda un par de combinaciones de teclas que coinciden con todas las palabras antes del cursor.
(En una versión anterior de esta respuesta, había utilizado
$terminfo
como se recomienda en uno de los comentarios en la publicación del blog. Algunos valores de terminfo se enumeran aquí ).fuente
/etc/zsh/zshrc
, como$key[Up]
.$terminfo
, deberá cambiar los modos del terminal. Ver aquí .$key[]
lugar de$terminfo[]
. ¡Espero que esto funcione bien para los lectores!Eche también un vistazo al proyecto zsh-history-substring-search .
Ofrece lo que está buscando e incluso puede usarse como un complemento oh-my-zsh.
fuente