source (o comando bash builtin) recebe um argumento filename ; a pesquisa PATH é acionada somente se o nome do arquivo especificado não for encontrado. Então, source foo tenta primeiro abrir ./foo e somente quando isso falhar, ele irá procurar por /path/dir/foo . Tente concluir a guia com nomes de arquivos que existem em seu diretório atual ou forneça caminhos para o comando no qual você está interessado. Eles devem ser preenchidos por guias como você espera.
-
A maneira mais fácil de alcançar o que você deseja é reconhecer que a conclusão de tabulação está tentando complete-filename , mas você quer complete-command . Você pode acionar complete-command com o
M-!keybind também conhecido como Alt +! . (Consulte a seçãoREADLINE,Completingsubsection, emman bashe em documentação on-line do bash para outras funções de conclusão e atalhos de teclado padrão.) -
A maneira mais difícil seria revisar as funções de conclusão padrão acionadas para o primeiro argumento do
sourcepara chamar o complete-filename e o complete-command funções. Vejahelp complete(em sua linha de comando), a subseçãoProgrammable Completionemman bashe em documentação on-line do bash e o comandocompletebuiltin.
Em geral, a conclusão da tabulação é posicional e chama diferentes funções de conclusão com base em onde você está na linha de comando. Nos sistemas Arch, os pacotes podem instalar um arquivo de conclusão em /usr/share/bash-completion para fornecer conclusões conscientes do contexto para seus executáveis.