终端选项卡完成[重复]


15

可能重复:
Mac OS中命令的重击完成

我刚刚从Linux转移到Mac,遇到的问题之一是制表符补全深度只有1级,而且我不确定该如何解决。

让我通过示例进行解释-当我在ubuntu上使用git时,我将开始输入

$ git

并点击选项卡,外壳将完成命令或显示我输入的字母可用的选项。这也是在我的Mac(1级)上发生的情况。但是,当我继续输入命令的下一部分时

$ git commit

然后按Tab,mac终端将不会像在Linux中那样完成下一个子命令(对于git)。其他支持此多级命令完成功能的程序也是如此。我怀疑这可能是readline库问题,但是我不确定应该安装哪一个。


这不是readline问题(实际上,这不是“问题”),这是因为Ubuntu拥有定制的bash软件包。
杰德·史密斯

这绝对是一个bash配置问题(因为我在Mac +上获得了许多我为其配置的行为,例如主机名完成),因此您应该四处寻找bash的超级脚本并将其添加到您的配置文件中。
Shane C. Mason,

Answers:


13

下载bash_completion并从您的源中获取它.bashrc。然后contrib/completion/git-completion.bash从git的分布放进去bash_completion.d

或者,您可以通过MacPorts安装它。


谢谢,这工作。如果[-f / opt / local / etc / bash_completion],我在.bashrc中添加了以下内容:然后来源/ opt / local / etc / bash_completion fi
sa125,2009年

1
更好的是,通过自制软件安装它:brew install bash-completion
abyx

@abyx:选择自制软件和Macports之间的“更好”是一个非常主观的事情

2

对于git,编译时提供一个选项来支持完成。

如果您使用端口安装Git(我建议这样做),则可以使用以下命令重新安装git

sudo port install git-core +svn+bash_completion+doc

它将安装带有bash完成,git-svn支持和文档的git

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.