如何在输入命令时获取fink
并macports
自动完成程序名称,就像在 Ubuntu 中一样apt-get
?
例如当我输入
sudo port install ca
然后按下tab,我希望终端自动完成或显示可用的命令。
OS X 甚至不会在之后自动完成命令sudo
!
答案1
bash 完成添加完成:
sudo
和之后的命令名称which
- Macports 和 Homebrew 软件包名称(可选)
- 主机名
known_hosts
用于以下命令ssh
- 文件夹
CDPATH
等等。您可以使用 打印完成命令列表,complete -p
并使用 查看函数的源代码declare -f
。
安装 Homebrew 或 MacPorts 和 Bash
首先,你必须安装自制或者麦金塔按照说明进行操作。笔记:请勿同时安装两者,因为它们会发生冲突。
然后,安装较新版本的 Bash。OS X 中的内置 Bash 有点旧,使用 Bash > 4.1 可以获得更多完成选项,您可以通过
brew install bash
或者
sudo port install bash
取决于您使用 Homebrew 还是 MacPorts。
使用 Homebrew 安装 bash-completion
要安装bash-completion
,您必须:
brew install bash-completion
并将以下内容添加到您的~/.bash_profile
:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Homebrew 当前安装了旧版本的 bash-completion(1.3),它仍然可以与 Bash 3.x 一起使用,但仍然建议使用 Bash 4.x。
使用 MacPorts 安装 bash-completion
使用 MacPorts:
sudo port install bash-completion
然后,添加到您的~/.bash_profile
:
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
. /opt/local/etc/profile.d/bash_completion.sh
fi
看trac.macports.org/wiki/howto/bash-completion有关如何启用端口名称补全的说明。