ZSH抱怨RVM __rvm_cleanse_variables:找不到函数定义文件

171

在 Mac OS X 10.7.4 上使用最新版本的 ZSH 和 RVM 时,ZSH 会出现以下问题:

__rvm_cleanse_variables: function definition file not found


这在Ubuntu上也会发生,在RVM更新后。@heracek的解决方案解决了这个问题。 - Ernest
5个回答

496

运行以下命令可以解决问题:

rm ~/.zcompdump*

注意:* 是为了防止存在多个 .zcompdump 文件。


22
ZSH使用compinit来为当前会话初始化自动补全功能。为了加快compinit的执行速度,可以生成一个转储配置文件,将在以后的调用中读取。这个转储文件是在启动文件所在目录(即$ZDOTDIR$HOME)中的.zcompdump文件。 - csgui
炸弹爆炸了。 - volker238
在诊断__rvm_cleanse_variables问题时搜索了“'zcompdump'是什么”,一举两得。给大家点个赞。 - max
似乎可以去掉-f标志,如果用户已经设置了删除文件确认,则不需要绕过它。 - pech0rin

109
有时候也会有一个名为~/.zcompdump-计算机名称-版本号的文件,请使用以下命令删除:
rm -f ~/.zcompdump*

2
谢谢,那就是我的问题 :) - Delameko
不要忘记打开一个新的 shell。 - Hotschke

7

但是可能 .zcompdump 文件有优点,删除它们会产生副作用。 - Timo

4
我的问题在执行了compinit -Drm -f ~/.zcompdump*之后仍然存在。我在GitHub上发现了这个问题,检查了我的.zplug目录,确实找到了一些非隐藏的zcompdump文件(没有前缀'.')。删除这些文件后,问题解决了。如果你正在使用像zgen或zplug这样的zsh插件管理器,请检查它们的目录。

小伙子,你救了我的一天。除了 ~/.zcomdump*,我还需要删除 ~/.antigen/.zcomdump* - userx

1
在.zlogin中添加rm -f ~/.zcompdump{,.zwc}以自动化它。

如果您不想缓存,请使用“or compinit -D”。 - Good Person

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接