macOS安装iTerm2,默认使用zsh作为shell解释器,但是缺少自动补全功能。
编辑.zshrc文件,在最后加入下面的配置,启用自带的补全功能。
###
autoload -Uz compinit
compinit
zsh读取自动补全脚本的路径由$FPATH
指定。
echo $FPATH
/usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/5.7.1/functions
如果觉得默认的不够,可以通过brew安装额外的补全工具。
例如安装常见的补全脚本。
brew install zsh-completions
然后将补全脚本的路径添加到变量$FPATH
中。
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh-completions:$FPATH
fi
autoload -Uz compinit
compinit
添加了新的脚本之后,需要清理zsh生成的缓存,在执行compinit的目录,一般是用户家目录。
rm -rf ~/.zcompdump
然后重新启动终端,会载入新添加的补全脚本。
注意:
如果启动终端时出现如下提示:
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
输入compaudit
进行诊断,会列出不安全的目录列表,这些目录权限过高,需要将用户组写权限去掉。
例如:
compaudit
There are insecure directories:
/usr/local/share/zsh-completions
chmod g-w /usr/local/share/zsh-completions