Befehl mit Optionen in Fischfunktion umschließen

307
Eric Brandwein

Gibt es eine Möglichkeit, einen Befehl mit Optionen in einer Funktion einzuhüllen, sodass die Fertigstellungen für diesen Befehl mit den Optionen angezeigt werden?

Zum Beispiel möchte ich das können:

function remove --wraps='pikaur -R' pikaur -R $argv; end 

damit wird die Verwendung removemit den installierten Paketen abgeschlossen, dies funktioniert jedoch nicht.

1

1 Antwort auf die Frage

0
Rafik Salama

Das --wrapsArgument akzeptiert nur einen bloßen Befehl. Sie können --wraps='pikaur'aber nicht verwenden --wraps='pikaur -R'.

Wenn die gewünschten Vervollständigungen nur ausgelöst werden, wenn das -RFlag angegeben ist, ist die Verwendung --wrapsmöglicherweise nicht ausreichend. Sie müssen Ihre eigene Vervollständigungsdatei hinzufügen. Glücklicherweise macht Fisch das sehr einfach.

Gibt es einen Befehl, mit dem Sie die gültigen Optionen abfragen oder auflisten können? Ich bin nicht vertraut mit pikaur, aber zum Beispiel, die gültigen Argumente für Ihre Funktion wurden durch einen Befehl wie pikaur lsoder gegeben pikaur query, oder vielleicht sind es Unterverzeichnisse von /etc/pikaur. Wenn ein solcher Befehl vorhanden ist, können Sie eine Vervollständigungsdatei für Ihre Funktion erstellen (dh, wenn sich Ihre Funktion in befindet ~/.config/fish/functions/remove.fish, erstellen Sie dann ~/.config/fish/completions/remove.fish) mit folgendem Inhalt:

complete -c remove --no-files --arguments "(<query command>)" 

Hinweis: Wenn Sie sich auf vorhandene Vervollständigungen beziehen möchten, können Sie die Verzeichnisse nach durchsuchen echo $fish_complete_path.