Respostas:
isso é controlado por / etc / bash_completion
você pode comentar o código de expansão em _expand () se não gostar.
aqui está minha versão no fedora 17, mas a sua deve ser semelhante:
# This function expands tildes in pathnames
#
_expand()
{
# FIXME: Why was this here?
#[ "$cur" != "${cur%\\}" ] && cur="$cur\\"
# Expand ~username type directory specifications. We want to expand
# ~foo/... to /home/foo/... to avoid problems when $cur starting with
# a tilde is fed to commands and ending up quoted instead of expanded.
if [[ "$cur" == \~*/* ]]; then
eval cur=$cur
elif [[ "$cur" == \~* ]]; then
cur=${cur#\~}
COMPREPLY=( $( compgen -P '~' -u "$cur" ) )
[ ${#COMPREPLY[@]} -eq 1 ] && eval COMPREPLY[0]=${COMPREPLY[0]}
return ${#COMPREPLY[@]}
fi
}
function _expand() { :;}
no meu arquivo ~/.bashrc
.
bash
pode fornecer preenchimento automático mais sofisticado para determinados comandos (por exemplo, argumentos do programa de preenchimento automático que não sejam nomes de arquivos). Existe uma função de conclusão programável definida para o vim
comando no seu sistema.
Digitar complete
no prompt de comando mostrará para que funções são usadas o fornecimento automático bash
.
$ complete
complete -o default -F _complete_open open
Digite type function_name
para aprender sobre sua definição.
$ type _complete_open
_complete_open is a function
_complete_open ()
{
# function definition
}
Para descobrir onde a função foi definida. use o seguinte:
$ shopt -s extdebug
$ declare -F _complete_open
_complete_open 70 /Users/danielbeck/.bash_profile