从完成函数中为另一个命令调用 bash-completion
Call bash-completion for another command from within completion function
_example()
{
local cur prev
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${prev} == example ]] ; then
COMPREPLY=( $(compgen -W "git" -- ${cur}) )
elif [[ ${prev} == git ]] ; then
_command
elif [[ ${prev} == g ]] ; then
# ??? TODO
# I want the same completion for `example git <TAB>` and `example g <TAB>`
else
COMPREPLY=()
fi
return 0
}
complete -F _example example
我知道如何"call" bash-完成下一个命令。 (上面的代码)
例如:example git <TAB>
=> git
的完成
如何使 bash-完成 "calls" 我想要的下一个命令的任何完成?
例如:example g <TAB>
=> git
的完成
填充COMP_CWORD
、COMP_WORDS
和COMP_LINE
,然后调用git
的完成函数__git_wrap__git_main
。
对于填充 COMP_*
和调用 pre-defined 完成函数的示例,。
有关 git
如何完成的更多信息,您 might want to start here。
_example()
{
local cur prev
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${prev} == example ]] ; then
COMPREPLY=( $(compgen -W "git" -- ${cur}) )
elif [[ ${prev} == git ]] ; then
_command
elif [[ ${prev} == g ]] ; then
# ??? TODO
# I want the same completion for `example git <TAB>` and `example g <TAB>`
else
COMPREPLY=()
fi
return 0
}
complete -F _example example
我知道如何"call" bash-完成下一个命令。 (上面的代码)
例如:example git <TAB>
=> git
如何使 bash-完成 "calls" 我想要的下一个命令的任何完成?
例如:example g <TAB>
=> git
填充COMP_CWORD
、COMP_WORDS
和COMP_LINE
,然后调用git
的完成函数__git_wrap__git_main
。
对于填充 COMP_*
和调用 pre-defined 完成函数的示例,
有关 git
如何完成的更多信息,您 might want to start here。