Estaba jugando con peces y noté este útil comportamiento.
Si escribía wget -<tab><tab><tab>
, aparecía en un menú interactivo. Sin embargo, cuando escribí, busqué las descripciones de los argumentos mismos. Probé esto en zsh y escribir en este menú solo pareció devolverme a mi mensaje interactivo. ¿Hay alguna manera de lograr una funcionalidad similar en zsh?
Respuesta1
Intenta poner esto en tu .zshrc
archivo:
# load module for list-style selection
zmodload zsh/complist
# use the module above for autocomplete selection
zstyle ':completion:*' menu yes select
# now we can define keybindings for complist module
# you want to trigger search on autocomplete items
# so we'll bind some key to trigger history-incremental-search-forward function
bindkey -M menuselect '?' history-incremental-search-forward
Ahora, si escribe, wget -<tab>
aparece el menú con autocompletado. Definimos la combinación de teclas para este menú, por lo que si presiona ?
la línea de búsqueda aparece en la parte superior de las terminaciones:
davidsykora~%wget --referer
isearch: refe
Algunos consejos adicionales:
- También puedes definir
bindkey -M menuselect '/' history-incremental-search-backward
para búsqueda hacia atrás. - Si presiona
?
nuevamente durante una búsqueda, la selección saltará al siguiente resultado de búsqueda. Usar/
para saltar al resultado anterior - Se necesitan muchos ajustes para que funcione como deseas, así que échale un vistazo.
complist
documentaciónpara encontrar funciones y opciones adicionales - Para mí, suele ser mucho más rápido usar
vi-insert
la función de lista completa: filtra las terminaciones según lo que escribe.
Respuesta2
Creo que esto hace lo que quieres:
zmodload zsh/complist
setopt menucomplete
zstyle ':completion:*' menu select=0 search
Esto hará que la lista aparezca cuando presione la pestaña y luego, si continúa escribiendo, buscará las opciones disponibles, incluidas las descripciones, con una búsqueda incremental.
Quizás también te interese la misma configuración, pero con interactiva en lugar de búsqueda. En ese caso, a medida que escriba, se filtrarán las terminaciones solo para aquellas que coincidan con lo que ha escrito hasta ahora.