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
,Completing
subsection, emman bash
e 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
source
para chamar o complete-filename e o complete-command funções. Vejahelp complete
(em sua linha de comando), a subseçãoProgrammable Completion
emman bash
e em documentação on-line do bash e o comandocomplete
builtin.
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.