Fischähnliche Argumentvervollständigungssuche in ZSH

Fischähnliche Argumentvervollständigungssuche in ZSH

Ich habe mit Fischen herumgespielt und dieses praktische Verhalten bemerkt

Wenn ich eintippte wget -<tab><tab><tab>, gelangte ich in ein interaktives Menü. Beim Eintippen suchte ich jedoch nach den Beschreibungen der Argumente selbst. Ich habe dies in zsh versucht, und das Eintippen in dieses Menü schien mich nur zu meiner interaktiven Eingabeaufforderung zurückzuleiten. Gibt es eine Möglichkeit, eine ähnliche Funktionalität in zsh zu erreichen?

Antwort1

Versuchen Sie, Folgendes in Ihre Datei einzufügen .zshrc:

 # 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

Wenn Sie jetzt etwas eingeben, wget -<tab>wird ein Menü mit automatischen Vervollständigungen angezeigt. Wir haben eine Tastenkombination für dieses Menü definiert, sodass beim Drücken ?der Suchzeile über den Vervollständigungen eine Zeile angezeigt wird:

davidsykora~%wget --referer
isearch: refe

Einige zusätzliche Tipps:

  • Sie können auch bindkey -M menuselect '/' history-incremental-search-backwardfür die Rückwärtssuche definieren
  • Wenn Sie ?während einer Suche erneut auf die Schaltfläche klicken, wird zum nächsten Suchergebnis gesprungen. /Mit dieser Schaltfläche springen Sie zum vorherigen Ergebnis
  • es braucht eine Menge Feinabstimmung, um es funktioniert, wie Sie wollen, also werfen Sie einen Blick aufcomplist Dokumentationum zusätzliche Funktionen und Optionen zu finden
  • für mich ist es normalerweise viel schneller, die Complist-Funktion zu verwenden vi-insert– sie filtert Vervollständigungen basierend auf Ihrer Eingabe.

Antwort2

Ich denke, das hier macht, was Sie wollen:

  zmodload zsh/complist
  setopt menucomplete
  zstyle ':completion:*' menu select=0 search

Dies führt dazu, dass die Liste angezeigt wird, wenn Sie die Tabulatortaste drücken. Wenn Sie dann mit der Eingabe fortfahren, werden die verfügbaren Optionen, einschließlich der Beschreibungen, mit einer inkrementellen Suche durchsucht.

Möglicherweise interessiert Sie auch die gleiche Konfiguration, allerdings mit interaktiver statt Suchfunktion. In diesem Fall werden die Vervollständigungen während der Eingabe auf diejenigen gefiltert, die mit Ihrer bisherigen Eingabe übereinstimmen.

verwandte Informationen