Risposte:
questo è controllato da / etc / bash_completion
puoi commentare il codice di espansione in _expand () se non ti piace.
ecco la mia versione in fedora 17, ma la tua dovrebbe essere simile:
# 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() { :;}
nel mio ~/.bashrc
.
bash
può fornire un completamento automatico più sofisticato per determinati comandi (ad esempio, argomenti del programma di autocompletamento diversi dai nomi dei file). C'è un tale Completamento programmabile funzione definita per vim
comando sul tuo sistema.
Digitando complete
al prompt dei comandi verrà mostrato quali funzioni sono utilizzate per fornire completamento automatico per bash
.
$ complete
complete -o default -F _complete_open open
genere type function_name
per conoscere la loro definizione.
$ type _complete_open
_complete_open is a function
_complete_open ()
{
# function definition
}
Per scoprire dove è stata definita la funzione. utilizza il seguente:
$ shopt -s extdebug
$ declare -F _complete_open
_complete_open 70 /Users/danielbeck/.bash_profile