我为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 "$@"
除了一个小故障之外,上面的函数运行得很好,即,在自动完成之后,当我尝试向文件添加路径时,路径不会扩展。我想问的是为什么不
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 "$@"