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
.
bash
peut 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 vim
commande 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_name
pour 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