Я заметил, что у некоторых программ есть собственное завершение табуляции.
Например, git:
git checkout
позволяет завершить табуляцию имен веток.
Как это сделать?
Используйте compgen и complete (статья о пользовательском bash, завершающем ).
compgen
complete