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
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏