我在Windows上安装了Cygwin,其中一个默认包是git tab completion,但是我没有完成标签。
我做了一些搜索并找到了一条说明默认情况下未启用的说明。我复制了skel .bashrc and .bash_profile to ~ and in .bashrc
我取消注释了完成的行,然后重新启动了控制台。仍然没有。
然后我注意到文件.bash_completion在/etc
中没有出现,所以我在网上找到了一份该文件的副本并将其放置到位,但我仍然没有在git中完成。
似乎还应该有一个/etc/bash_completion.d
目录,其中包含git/
,但我也没有。{
答案 0 :(得分:49)
2016年更新:安装包bash-completion
。
答案 1 :(得分:9)
上面的答案为bash_completion.d /中的几乎每个脚本打印出bash: have: command not found
。来自链接帖子的This answer为我解决了这个问题:
if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
脚本/程序/ etc / bash_completion已包含/etc/bash_completion.d中的脚本,并且还定义了所包含脚本所需的一些功能。
但是,请注意这会降低shell的加载速度,特别是在Cygwin中(对我来说减慢到大约1秒的负载)。为了缓解这种情况,您可以将/etc/bash_completion.d/中的所有内容重命名为*.bak
,然后从您实际关注的命令中有选择地删除.bak
(感谢Slow load time of bash in cygwin)。
更新:文件/etc/bash_completion
神奇地消失了(看起来是因为将bash-completion包升级到2.1-1)。作为一个快速解决方案,我刚刚在/ etc中创建了一个符号链接到/usr/share/bash-completion/bash_completion
。
更新2:重新阅读原始问题,没有/etc/bash_completion.d
目录的问题可能与不在Cygwin中安装“bash-completion”软件包有关。
答案 2 :(得分:5)
在我的.bashrc
中 for file in /etc/bash_completion.d/* ; do
source "$file"
done
答案 3 :(得分:4)
安装" git-completion"包从cmd.exe运行:
cyg-get git-completion
之后你不需要修改你的.bashrc。
答案 4 :(得分:4)
几天前我偶然发现了同样的问题,安装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
答案 5 :(得分:3)
我必须安装以下Cygwin软件包:
bash-completion
bash-completion-devel
答案 6 :(得分:2)
截至2016年5月,我得到了git& svn选项卡完成工作,只需使用此处的Cygwin设置实用程序(v2.874)安装bash-completion软件包:https://www.cygwin.com/install.html。请务必选择“从互联网安装”#39;选项。 bash-completion包列在Shells类别下。