Ich habe ein Skript, das wie Argumente (mehrteilige Argumente) Datei nimmt, bin ich die möglichen Werte zu holen und sie in einem Array setzen raw
genannt und dannZsh Abschluss Groß- und Kleinschreibung _multi_parts Funktion
_multi_parts/"(${raw[@]})"
mit automatisch zu vervollständigen . Das Problem ist, dass dies Groß-und Kleinschreibung ist, wie kann ich es so machen, dass ich es mycommand get fo
eingeben und drücken Sie Tab
es wird mycommand get Foo/
automatisch vervollständigen, wenn Foo
eines der Dinge in roh ist.
Der vollständige Abschluss ist hier als Referenz:
_mycommand() {
local curcontext="$curcontext" state line
_arguments "1: :->command" "*: :->label"
case $state in
command)
_arguments "1: :(add get ls rm)"
;;
*)
case $words[2] in
add|get|ls|rm)
if [ -f ~/.pts ]; then
IFS=$'\n' read -d '' -r raw <<< "$(mycommand ls)"
_multi_parts/"(${raw[@]})"
fi
;;
*)
_files
;;
esac
esac
}
_mycommand "[email protected]"
mycommand ls
Ausgänge Pfad wie Namen wie die folgenden:
Foo/Bar/x
Foo/Bar/y
Derp/z
Placeholder/z