Acredito que sua biblioteca readline suporta apenas um tipo de comportamento de conclusão de tabulação de cada vez.
Eu gostaria de ter dois comportamentos diferentes de "tab" dependendo do contexto de uso.
Eu gostaria de ter o comportamento padrão de bind '"\t":complete'
a qualquer momento, exceto quando os usuários estão tentando concluir argumentos do comando "mybashfunction". Nesse caso, eu chamo uma função especial para gerar a conclusão, mas gostaria que a "guia" funcionasse como se bind '"\t":menu-complete'
estivesse definido.
Acredito que sua biblioteca readline suporta apenas um tipo de comportamento de conclusão de tabulação de cada vez.
É isso que você está procurando? Bash: menu completo apenas para alguns jogos
Você pode conseguir isso usando as regras completas do bash ...
_myfunc() {
_opts="zero one two"
# COMPREPLY is bash built-in for array of possible completions
COMPREPLY=()
# cur & prev are current & previous words typed in shell
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
COMPREPLY=( $( compgen -W "${_opts}" -- ${cur} ))
return 0
}
complete -F _myfunc myfunc
Isso não vai tocar na conclusão normal do bash, mas quando você fizer tab com o myfunc completo você terá "zero um dois" como conclusões possíveis.
Edit: oh sim, coloque isso no seu bashrc ou similar, então ele é originado em novos shells.