Búsqueda de finalización de argumentos tipo pez en ZSH

Búsqueda de finalización de argumentos tipo pez en ZSH

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 .zshrcarchivo:

 # 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-backwardpara 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-insertla 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.

información relacionada