JAy*_*een 32 bash cygwin bash-completion
我在Windows上安装了Cygwin,其中一个默认包是git tab completion,但我没有tab完成.
我做了一些搜索并找到了一条说明默认情况下未启用的说明.我复制了skel .bashrc and .bash_profile to ~ and in .bashrc我取消注释完成的行,然后重新启动控制台.依然没有.
然后我注意到文件.bash_completion没有出现/etc,所以我在网上发现了一个副本并把它放到位,但我仍然没有在git中完成.
它似乎也应该有一个/etc/bash_completion.d目录git/,但我也没有.
ses*_*esm 50
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中的脚本,并且还定义了包含的脚本所需的一些功能.
但是,请注意这会降低shell的加载速度,特别是在Cygwin中(对我来说减慢到大约1秒的负载).为了缓解这种情况,您可以将/etc/bash_completion.d/中的所有内容重命名为*.bak,然后.bak从您实际关注的命令中有选择地删除(感谢cygwin中缓慢加载bash的时间).
更新:文件/etc/bash_completion神奇地消失了(看起来是因为将bash-completion包升级到2.1-1).作为一个快速的解决方案,我刚刚在/ etc中创建了一个符号链接/usr/share/bash-completion/bash_completion.
更新2:重新阅读原始问题,没有/etc/bash_completion.d目录的问题可能与不在Cygwin中安装"bash-completion"包有关.
小智 5
在我的.bashrc中
for file in /etc/bash_completion.d/* ; do
source "$file"
done
Run Code Online (Sandbox Code Playgroud)
要安装“git-completion”包,请从 cmd.exe 运行:
cyg-get git-completion
Run Code Online (Sandbox Code Playgroud)
之后您不需要修改 .bashrc 。
小智 5
几天前我偶然发现了同样的问题,但安装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