Jawaban:
ini dikendalikan oleh / etc / bash_completion
Anda dapat mengomentari kode ekspansi di _expand () jika Anda tidak menyukainya.
di sini adalah versi saya di fedora 17, tetapi Anda harus serupa:
# 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() { :;}
di ~/.bashrc
.
bash
dapat menyediakan pelengkapan otomatis yang lebih canggih untuk perintah tertentu (mis. argumen pelengkapan program otomatis selain nama file). Ada fungsi Penyelesaian yang Dapat Diprogram yang didefinisikan untuk vim
perintah pada sistem Anda.
Mengetik complete
di command prompt akan menunjukkan kepada Anda fungsi apa yang digunakan untuk menyediakan pelengkapan otomatis bash
.
$ complete
complete -o default -F _complete_open open
Ketik type function_name
untuk belajar tentang definisi mereka.
$ type _complete_open
_complete_open is a function
_complete_open ()
{
# function definition
}
Untuk mengetahui di mana fungsi itu didefinisikan. gunakan yang berikut ini:
$ shopt -s extdebug
$ declare -F _complete_open
_complete_open 70 /Users/danielbeck/.bash_profile