Ответ 1
Обновлено для 2016: Установить пакетное bash-completion
пакета.
Я установил Cygwin на окна, а один из пакетов по умолчанию - завершение git-tab, но у меня нет завершения табуляции.
Я сделал несколько поисков и нашел заметку о том, что она не включена по умолчанию. Я скопировал skel.bashrc and.bash_profile to ~ and in.bashrc
Я раскомментировал строки для завершения, а затем перезапустил консоль. Еще ничего.
Затем я заметил, что файл.bash_completion не присутствует в /etc
, поэтому я нашел копию этого онлайн файла и вставил его на место, но у меня все еще нет завершения в git.
Кажется, что также должен быть каталог /etc/bash_completion.d
с git/
в нем, но у меня его тоже нет.
Обновлено для 2016: Установить пакетное bash-completion
пакета.
Ответ выше выводит bash: have: command not found
почти для каждого скрипта в bash_completion.d/. Этот ответ из связанного сообщения решает его для меня:
if [ -f/etc/bash_completion ]; then./etc/bash_completion fi
Скрипт/программа /etc/bash_completion уже включает скрипты в /etc/bash_completion.d, а также определяет некоторые функции, необходимые для включенных скриптов.
Однако будьте осторожны, что это замедлит загрузку вашей оболочки, особенно в Cygwin (замедление до 1 секунды загрузки для меня). Чтобы смягчить это, вы можете переименовать все в /etc/bash_completion.d/в *.bak
, а затем удалить .bak
выборочно из команд, которые вам действительно нужны (благодаря медленному времени загрузки bash в cygwin).
Обновление: файл /etc/bash_completion
волшебным образом исчез (похоже, это связано с обновлением пакета завершения bash до 2.1-1). В качестве быстрого решения я просто создал символическую ссылку в /etc для /usr/share/bash-completion/bash_completion
.
Обновление 2: перечитав исходный вопрос, проблема с отсутствием /etc/bash_completion.d
может быть связана с не установкой пакета "bash-completion" в Cygwin.
В моем.bashrc
for file in /etc/bash_completion.d/* ; do
source "$file"
done
Чтобы установить пакет "git-completion" из cmd.exe:
cyg-get git-completion
После этого вам не нужно изменять свой.bashrc.
Мне пришлось установить следующие пакеты Cygwin:
bash-completion
bash-completion-devel
По состоянию на май 2016 года мне удалось получить завершение работы git & svn, просто установив пакет завершения bash с помощью утилиты настройки Cygwin (v2.874), найденной здесь: https://www.cygwin.com/install.html, Обязательно выберите опцию "Установить из Интернета". Пакет завершения bash указан в категории "Корпуса".
Я наткнулся на ту же проблему несколько дней назад, и установка bash-completion
была недостаточной.
В моем случае проблема была решена при загрузке https://github.com/git/git/blob/master/contrib/completion/git-completion.bash и ее копировании в /etc/bash_completion.d/
См. Также: https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks