解决终端提示 command not found: compdef 问题

634 阅读1分钟

中午觉睡醒突然发现每次打开终端都会有如下提示:

complete:13: command not found: compdef

于是开始查资料,并且回忆自己都做什么操作(想起来早上尝试使用 nvm 设置一个不存在的版本)。
于是推测可能是 nvm 这里出了问题,解决的思路是更新一下 nvm,命令如下:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

重新打开终端看一下,又有新的提示了

zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

这里选择y后终端就可以继续使用,但是每次重新打开都要选择一下,很麻烦。于是再查了一下怎么解决这个问题

输入compaudit查看不安全的目录

There are insecure directories:
/usr/local/share/zsh/site-functions
/usr/local/share/zsh

查到目录之后改一下权限,like this

cd /user/local/share/zsh
sudo chmod -R 755 ./site-functions
cd ../
sudo chmod -R 755 zsh

再次启动终端就不会有问题啦
参考:blog.csdn.net/CaptainJava…