bash полный путь в функции с параметрами - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу написать небольшую псевдоним, также известную как функция быстрого открытия сеансов vim.

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

Как выполнить bash / предложить файлы сеансов в пути при вводе vims Tab Tab

1 Ответ

0 голосов
/ 03 марта 2019

На основании 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

Вы можете получить более подробную информацию о полной здесь и учебном пособии здесь .

...