我想./.bash_func
在终端中运行一些函数(我在 中创建),其中一些文件位于某处。当我键入该函数并点击时,Tab Tab我想列出位于./scipts
以下位置的文件cd ./scipts
Tab Tab
答案1
我这样做过一次:
notes () { ... }
complete -F complete_notefiles notes
# following based on
# http://unix.stackexchange.com/questions/77009/custom-autocomplete-deal-with-spaces-in-filenames
complete_notefiles () {
local cur=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=()
pushd ~/Documents/Notes >/dev/null
_filedir
popd >/dev/null
}
. ~/.bash_completion_functions
我发现我需要从 /usr/share/bash-completion/bash_completion 复制 3 个函数:_filedir
, _tilde
,_quote_readline_by_ref