Réponses:
ceci est contrôlé par / etc / bash_completion
vous pouvez commenter le code d'extension dans _expand () si vous ne l'aimez pas.
voici ma version dans fedora 17, mais la vôtre devrait être similaire:
# 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() { :;}dans mon ~/.bashrc.
bashpeut fournir une saisie semi-automatique plus sophistiquée pour certaines commandes (par exemple, des arguments de programme de saisie semi-automatique autres que les noms de fichiers). Une telle fonction d' achèvement programmable est définie pour la vimcommande sur votre système.
Taper completeà l'invite de commande vous montrera quelles fonctions sont utilisées pour fournir la saisie semi-automatique bash.
$ complete
complete -o default -F _complete_open open
Tapez type function_namepour en savoir plus sur leur définition.
$ type _complete_open
_complete_open is a function
_complete_open ()
{
# function definition
}
Pour savoir où la fonction a été définie. utilisez le suivant:
$ shopt -s extdebug
$ declare -F _complete_open
_complete_open 70 /Users/danielbeck/.bash_profile