在 Mac OS X 系统下为 Brew 开启 Zsh 补全功能

Brew 是一个很好用的 Mac OS X 下的一个包管理软件。里面包含了很多常用的 Linux 开源库和软件包,比如 wget 等。

Zsh 又是一个很爽的 Shell,使用 Oh My Zsh 的话,就更爽了。

下面是我在 iTerm 终端中使用 Solarized 主题,同时搭配 Oh-My-Zsh 和 Agnoster 主题的效果。

回归正题,Brew 可以安装很多很好用的工具,然而直接安装好的软件,虽然自带了了 zsh completion,却因为其搜索路径不在 Oh-My-Zsh 的默认路径中而无法使用。其实我们只需要把 Brew 的 zsh completion 路径告诉 zsh 便可。

比如我们先安装一个 youtube-dl 的 Python 小软件。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ brew install youtube-dl
==> Downloading https://homebrew.bintray.com/bottles/youtube-dl-2015.02.23.1.yosemite.bottle.tar.gz
==> Pouring youtube-dl-2015.02.23.1.yosemite.bottle.tar.gz
==> Caveats
To use post-processing options, `brew install ffmpeg` or `brew install libav`.

Bash completion has been installed to:
/usr/local/etc/bash_completion.d

zsh completion has been installed to:
/usr/local/share/zsh/site-functions
==> Summary
/usr/local/Cellar/youtube-dl/2015.02.23.1: 8 files, 968K

可以看到 zsh completion 被安装到了:/usr/local/share/zsh/site-functions,我们只需要把这个路径添加到我们 home 目录的 .zshrc 文件中便可。修改 ~/.zhsrc 文件,并在文件末尾添加如下内容:

1
2
3
# zsh completions for brew
fpath=(/usr/local/share/zsh/site-functions $fpath)
compinit

然后重启终端,或者 source ~/.zshrc,我们再尝试输入一下 youtube-dl,然后按一按 Tab 键。

Hurray~~~ 搞掂,收工。