コマンドの完成スクリプトを作成中に停止しました。私が見つけた文書とさまざまなウェブサイトが私の要件に合っていませんでした。主なコマンドはpacstall
で、フラグはです-I -S -R -C -U -V -L -Up -Qd -Qi
。ほとんどのフラグでは、コマンドの出力として完了が必要です(pacstall -I
タブを実行するとコマンドの出力が表示されますcurl -s $(cat /usr/share/pacstall/repo/pacstallrepo.txt)/packagelist
。これまでに得たものは次のとおりです)。
set -l pacstall_commands "-I -S -R -C -U -V -L -Up -Qd -Qi"
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -I -d 'Install package'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -S -d 'Search for package'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -R -d 'Remove package'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -C -d 'Change repository'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -U -d 'Update pacstall scripts'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -V -d 'Print pacstall version'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -L -d 'List packages installed'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -Up -d 'Upgrade packages'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -Qd -d 'Query the dependencies of a package'
complete -f --command pacstall -n "not __fish_seen_subcommand_from $pacstall_commands" -a -Qi -d 'Get package info'
フラグを入力した後も、スクリプトはタブの完成を維持します。
答え1
コマンドを完了するフラグを使用すると、-n
完了が発生する条件を指定できます。この場合、この__fish_seen_subcommand_from
機能を使用してサブコマンドが表示され-I
ているかどうかを指定できます。
その後、フラグを使用して-a
実行するコマンドを指定できます()
。
complete -f --command pacstall -n "__fish_seen_subcommand_from -I" -a "(curl -s (cat /usr/share/pacstall/repo/pacstallrepo.txt)/packagelist)"
$
Fishは、質問に投稿されたコマンドの結果をキャプチャするときにこのシンボルを使用しません。
最後の最終ポイントは。引用符を削除すると、set
重複する問題が解決されます。この引用符を使用すると、個々のコマンドではなく長いコマンドを指定します。