按照教程配置,在setting文件里面增加了下述配置,启动的时候会报错
{
"iFlow CLI": {
"command": "iflow",
"args": ["--experimental-acp"]
}
报错信息如下:
这报错的是文件找不到,因此排查思路先看看Zed能不能找到iflow
看了一下Zed的源代码,他会读取用户当前使用的shell,获取环境变量PATH,以及拼接用户在命令行里面的env。 因为我们没有贴入env,所以也就是PATH。
在zed的命令行里面直接输出PATH,看看里面是什么信息
>echo $PATH
输出里面有nvm的bin路径: ~/.local/share/nvm/v22.20.0/bin
检查一下这个目录
>ll ~/.local/share/nvm/v22.20.0/bin
可以看到,iflow cli是在里面的,那么PATH是没有问题的。
然后再检查一下,在zed里面能否找到node。同样在terminal里面执行 node -v 或者 nvm current
这个时候,报错说node找不到。
很神奇,打开我的iTerms,输入node -v 或者 nvm current,都是能正常显示版本号的。
fish启动新命令行的时候,node版本是通过写在 ~/.nvmrc 里面读取的。 那么问题可能是Zed在调用命令的时候,并不会直接去读~/.nvmrc的node版本,导致没有node可以用。
为了验证这个想法,我们在fish的config里面强制使用版本,修改 ~/.config/fish/config.fish 文件,在nvm环境声明处,强制加上 nvm use 22
然后重启Zed,重新加载环境变量。这个时候,Zed就可以正确读到node,并启动iflow cli了。
祝大家用Zed欢快~




