macOS安装iTerm2,默认使用zsh作为shell解释器,但是缺少自动补全功能。
编辑.zshrc文件,在最后加入下面的配置,启用自带的补全功能。
###
autoload -Uz compinit
compinitzsh读取自动补全脚本的路径由$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-completionschmod g-w /usr/local/share/zsh-completions