带参数的函数中的bash完整路径

带参数的函数中的bash完整路径,bash,function,alias,completion,Bash,Function,Alias,Completion,我想写一个小的alias aka函数来快速打开vim会话 vims () { vim -S "${HOME}/Sessions/${1}" } 在进入Vimstab时,如何使bash完成/建议路径中的会话文件?基于pynexj和我的日常使用: _autocomplete() { local cmd=$1 cur=$2 pre=$3 from_path=$4 local _cur compreply _cur=$from_path/$cur comprepl

我想写一个小的alias aka函数来快速打开vim会话

vims () {
  vim -S "${HOME}/Sessions/${1}"
}
在进入Vimstab时,如何使bash完成/建议路径中的会话文件?

基于pynexj和我的日常使用:

_autocomplete()
{
    local cmd=$1 cur=$2 pre=$3 from_path=$4
    local _cur compreply

    _cur=$from_path/$cur
    compreply=( $( compgen -d "$_cur" ) )
    COMPREPLY=( ${compreply[@]#$from_path/} )
    if [[ ${#COMPREPLY[@]} -eq 1 ]]; then
        COMPREPLY[0]=${COMPREPLY[0]}/
    fi
}

vims()
{
    vim -S ~/Sessions/$1
}

_vims_autocomplete()
{
    _autocomplete "$1" "$2" "$3" ~/Sessions
}

complete -F _vims_autocomplete -o nospace vims

# This way allow me to create different alias using the same autocomplete

gogit()
{
    cd ~/git/$1
}

_gogit_autocomplete()
{
    _autocomplete "$1" "$2" "$3" ~/git
}

complete -F _gogit_autocomplete -o nospace gogit
您可以获得有关complete和教程的更多信息