私はですaudtool
。たとえば、次のようになります。
#compdef audtool
_audtool() {
local state
_arguments \
'1: :->csi'\
case $state in
csi)
_arguments '1::(
--current-song
--current-song-filename
--help
--playlist-addurl)'
;;
esac
}
_audtool "$@"
上記の関数は、オートコンプリート後にファイルにパスを追加しようとしたときにパスが拡張されない1つの欠陥を除いて、うまく機能します。私が尋ねたいのはなぜダメなのかということだ。
audtool --playlist-addurl /h
次に展開
audtool --playlist-addurl /home/
を押した後Tab。
誰もがこの問題を解決するのに役立ちます。ありがとうございます!
ベストアンサー1
解決しました。フルパスを表示するためのパラメータを追加するには、次の行を追加するだけです。
_arguments '*:filename:_files'
したがって、最終関数は次のようになります。
#compdef audtool
_audtool() {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments \
'1: :->csi'\
'2: :->file'
case $state in
csi)
_arguments '1: :(
--current-song
--current-song-filename
--current-song-length
--playlist-addurl)'
;;
file)
_arguments '*:filename:_files'
;;
esac
}
_audtool "$@"