首页 > 解决方案 > zsh 上的 Ruby gem 选项卡完成会产生“双倍的剩余参数定义”错误?

问题描述

当我点击时gem push <tab>,它会显示此错误(无论目录是否包含任何.gem文件):

_arguments:comparguments:325: doubled rest argument definition: *:gem:_files -g "*.gem(-.)"
_arguments:comparguments:325: doubled rest argument definition: *:gem:_files -g "*.gem(-.)"
_arguments:comparguments:325: doubled rest argument definition: *:gem:_files -g "*.gem(-.)"

我不知道如何解决这个问题,谷歌也没有帮助。我的fpath

> echo $fpath
/Users/robenkleene/.zsh/completion
/usr/local/share/zsh/site-functions
/usr/local/Cellar/zsh/5.7/share/zsh/functions

我尝试通过自制软件卸载并重新安装 Ruby,因为上面的“地窖”路径包含一个_gem我认为定义此完成功能的文件,但这不起作用。

还有其他想法吗?谢谢!

(另外,如果有人对我可以在哪里提交错误报告有任何建议,这也会有所帮助,再次感谢!)

标签: rubyrubygemszsh

解决方案


我拼凑了我自己的糟糕解决方案,但总比没有好。

_gem我将文件从复制/usr/local/Cellar/zsh/5.7/share/zsh/functions/Users/robenkleene/.zsh/completion然后修改了有问题的行(请注意,这仅适用fpath=(~/.zsh/completion $fpath)于我的zshrc):

-      args+=( '*:gem:_files -g "*.gem(-.)"' )
+      args=( '*:gem:_files -g "*.gem(-.)"' )

所以我删除了+. 这似乎可行,但我想要一个更优雅的解决方案和/或任何关于原因的信息(基于我的谷歌搜索),我似乎是唯一遇到这种情况的人。


推荐阅读