zsh自动完成似乎只适用于内置命令



我是zsh的新手,刚从fish切换过来。我正在尝试让自动完成工作,这样它就可以在按下选项卡时显示命令的参数/标志选项。

目前,这是可行的,但它似乎只适用于内置命令。例如,它适用于ls、grep、git等,但不适用于我自己添加的程序。例如,fd查找、exa和nvm都不起作用。

对于nvm,我已经使用Oh My Zsh启用了nvm插件。我知道这个插件总体上是有效的,因为nvm本身是有效的(在启用插件之前是无效的(。

对于fd find,我在/usr/share/zsh/vendor-completions/_fd中看到了自动完成文件

例如,我按照网站的指示手动下载并将自动完成文件放置在/usr/local/share/zsh/site-functions/_exa中。

这三个程序都没有像内置命令那样向我显示典型的参数/标志自动完成菜单。我不确定哪里出了问题。

我回显fpath环境变量以确保/usr/local/share/zsh/site-functions在其中。它与/usr/local/share/zsh/site-functions/一起

当我运行which nvm时,我得到:

_nvm () {
# undefined
builtin autoload -XUz
}

这实际上就是我从_nvm、_exa、_fd中得到的。

不知道还能尝试什么。

关于如何使自动完成正常工作,有什么建议吗?

其他信息:我在System76 Darter Pro笔记本电脑上运行Pop_OS。

我找到了一个对我有效的修复程序。在github上搜索了与自动完成相关的zsh问题后,这个解决方案对我有效。stackexchange上的解决方案的原始来源值得称赞。

解决方案只是删除所有zcompdump文件:

rm ~/.zcompdump*

运行以上命令后,自动完成工作并展开非内置程序的可能标志/参数!

最新更新