Ok, então há três coisas diferentes acontecendo na pergunta:
1) Para procurar a função de conclusão do bash de um comando complete -p <command>
faz o truque. Nesse caso complete -p screen
rende complete -o default -F _screen screen
2) A conclusão do bash terá argumentos. No caso de screen -r
, a função de conclusão screen
bash é chamada com -r
como argumento. Você pode então preencher automaticamente condicionalmente a partir daí.
3) No Ubuntu, /etc/bash_completion.d/screen
tem a função de conclusão da tela definida.
Assim, a maneira como eu aliasse screen -r
e mantivesse a função de conclusão era a seguinte.
.bashrc:
alias scr="screen -r"
function _complete_scr() {
local does_screen_exist=$(type -t _screen_sessions)
local cur=$2 # Needed by _screen_sessions
if [[ "function" = "${does_screen_exist}" ]]; then
_screen_sessions "Detached"
fi
}
export -f _complete_scr
complete -F _complete_scr -o default scr