Zsh想要自动更正一个命令,前面有一个_

我刚刚开始在shell提示符下使用Zsh的一些集成支持来处理我的Git状态等。

当我input:

ruby -v 

确认我正在运行的ruby的版本,Zsh询问是否要将命令更改为_ruby。 那么在提示“否”并且命令按预期完成之后,在确认我的命令是正确的之后,在提示符下继续得到问题。

我假设有一个完成文件或类似的东西。

谢谢

更新:

shell不再试图完成_ruby,closuresshell几次后就停止了响应。

我试图清理文件多次,但有一个“opts”variables是50或更长的行,行都是一起跑,一些行超过150个字符。 也许我可以通过电子邮件发送附件给你,如果你仍然想看到它。 我真诚地为这个杂乱的post道歉。

这是命令自动correct ,由correct选项激活。 这与完成无关。 你看到_ruby因为zsh认为没有ruby命令,它提供_ruby作为最近的现有匹配。

如果你刚刚安装了ruby ,那么zsh可能早先记住了可用的命令列表,并且不会总是试图查看命令是否出现在中间。 在这种情况下,运行hash -rf 。 未来的zsh会话将不会有这个问题,因为ruby命令在启动时已经存在。

有时候,当你改变你的PATH ,zsh忘记了一些散列的命令。 hash_listall选项有助于解决这个问题。 如上所述,如果您可以强制zsh使用hash -rf来刷新其命令caching。

你可以做一个别名:

alias ruby='nocorrect ruby'

这是我做zsh一直问我是否意味着.meteor当我inputmeteor因为自动校正仍然是有用的。

我发现自动更正function有时会变得烦人。 所以我做我的〜/ .zshrc,

 DISABLE_CORRECTION="true" 

前一段时间更新后,我得到了我不想要的命令自动纠正function。 如果同样的情况发生在你身上,你想恢复它,在〜/ .zshrc文件中,你将会做到这一点:
# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="false"

或按照以下注释:
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"