2016-12-23 3 views
2

Я внедрил пользовательскую команду git, написав сценарий оболочки, расположенный в/usr/local/bin. Он отлично работает, но я хотел бы, чтобы сценарий автоматически заполнял ветви в командной строке, как «git checkout [TAB] [TAB]». Как это можно сделать?custom git command autocompletion

EDIT: Просто добавить некоторую ясность, мерзавец позволяет очень легко добавить свои собственные команды путем создания сценария git-$subcommandName. В моем случае здесь git-install, сценарий fascilitates проверяет ветку, здание, упаковку и установку исходного кода.

+0

Ну, требуемые вещи будут включать в себя понимание полного множества команд git и их запутанное постоянное использование переключателей и параметров. Чтобы затем реализовать какой-то поисковый поиск по этим данным. Но мне интересно: почему вы изобретаете колесо? git полностью поддерживает автозаполнение bash; так что вы думаете, что ваше повторное изобретение колеса будет представлять интерес для кого-либо? Не поймите меня неправильно: это интересный проект. Но это потребует значительных усилий ... и вы, вероятно, всегда будете «не так хороши», как оригинал ... – GhostCat

+1

Не совсем изобретать колесо здесь, моя пользовательская команда «git install» принимает имя ветки, которое она проверяет (да, так же, как и git checkout), но затем выполняет ряд шагов по пакету и установке источника на вычислительный кластер. – primitivist

+0

Возможно, git-псевдоним может быть проще реализовать? – pedrorijo91

ответ

4

Выяснил это. Мне нужно скачать GIT завершение оргии (here), создайте новый файл в /etc/bash_completion.d со следующим содержанием:

source ~/.git-completion.bash 
_git_install() 
{ 
    __gitcomp_nl "$(__git_refs)" 
} 

, а затем exec bash перезагрузить сценарии завершения.