我一直使用bash完成来保存输入。然而,有一个奇怪的是我无法弄清楚如何修复OSX。
如果我使用Homebrew(brew install bash-completion)安装bash-completion并在.bashrc中设置它,则tab键将不再完成环境变量。如果没有安装,环境变量完成将按预期工作。
例如,我的客户端所有SSH帐户都有快捷方式...而不是键入ssh myuser@somecrazydomain.com
我只需输入ssh $SSHCRAZY
即可更容易记住。
预期的行为:在OSX中的内置bash中,我可以键入ssh $SSHC
并点击tab,它会按预期完成整个命令。这就是我想要的。
观察到的行为:在使用自制bash-completion添加的bash中,点击标签对环境变量没有影响。
注意:需要bash-completion项目添加的所有其他扩展名(git命令完成等)。我不想卸载它,我只是希望它也使用环境变量。
提前感谢您的帮助!
答案 0 :(得分:3)
我猜bash-completion
必须为ssh
定义完成规则。因此,请尝试在-o bashdefault
中添加.bashrc
选项。例如,如果complete -p ssh
输出如下:
# complete -p ssh
complete -F _func ssh
#
然后您可以将其添加到.bashrc
(或.bash_profile
):
complete -F _func -o bashdefault ssh
或
eval "$(complete -p ssh | sed 's/ssh$/-o bashdefault ssh/')"