Завершение вкладок Cygwin git

Я установил Cygwin на окна, а один из пакетов по умолчанию - завершение git-tab, но у меня нет завершения табуляции.

Я сделал несколько поисков и нашел заметку о том, что она не включена по умолчанию. Я скопировал skel.bashrc and.bash_profile to ~ and in.bashrc Я раскомментировал строки для завершения, а затем перезапустил консоль. Еще ничего.

Затем я заметил, что файл.bash_completion не присутствует в /etc, поэтому я нашел копию этого онлайн файла и вставил его на место, но у меня все еще нет завершения в git.

Кажется, что также должен быть каталог /etc/bash_completion.d с git/ в нем, но у меня его тоже нет.

Ответ 1

Обновлено для 2016: Установить пакетное bash-completion пакета.

Ответ 2

Ответ выше выводит 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.

Ответ 3

В моем.bashrc

 for file in /etc/bash_completion.d/* ; do
    source "$file"
 done

Ответ 4

Чтобы установить пакет "git-completion" из cmd.exe:

cyg-get git-completion

После этого вам не нужно изменять свой.bashrc.

Ответ 5

Мне пришлось установить следующие пакеты Cygwin:

  • bash-completion
  • bash-completion-devel

Ответ 6

По состоянию на май 2016 года мне удалось получить завершение работы git & svn, просто установив пакет завершения bash с помощью утилиты настройки Cygwin (v2.874), найденной здесь: https://www.cygwin.com/install.html, Обязательно выберите опцию "Установить из Интернета". Пакет завершения bash указан в категории "Корпуса".