저는 입니다 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 "$@"