Я написал следующую функцию в .bashrc, но она не работает.
_fzf_complete_git() {
ARGS="$@"
local branches
branches=$(git branch)
if [[ $ARGS == 'git co'* ]]; then
_fzf_complete "--reverse --multi" "$@" < <(
echo "$branches"
)
else
eval "zle ${fzf_default_completion:-expand-or-complete}"
fi
}
[ -n "$BASH" ] && complete -F _fzf_complete_git -o default -o bashdefault git
Примечание: $ BASH - это / bin / bash
В командной строке, когда я набираю gitco ** {tab}, он показывает мне следующее:
$git co**{tab}
>co
Только когда я удаляю 'co', отображаются все ветви, которые у меня есть.
Во-вторых, после выбора ветки, 'co' из командной строки исчезает.
$git {selected branch}
Пожалуйста, посмотрите, что происходит не так.
Пример кода взят по следующей ссылке:
https://github.com/junegunn/fzf/wiki/Examples-(completion)