我最近开始使用Zsh来获取我的Git状态等shell提示中的一些集成支持.
当我输入时:
ruby -v
Run Code Online (Sandbox Code Playgroud)
为了确认我正在运行的ruby版本,Zsh询问我是否要将命令更改为_ruby.好之后在提示符处说不,并且命令按预期完成,在确认我的命令正确后,我会继续在提示符下得到问题.
我假设有一个完成文件或类似的东西.
谢谢
更新:
shell不再试图完成_ruby,它在关闭shell之后停止响应几次如何.
我尝试多次清理文件,但是有一个"opts"变量,长度为50行或更多,并且所有行都在一起运行,一些行超过150个字符.如果您还想看到它,也许我可以通过电子邮件向您发送附件.我真诚地为凌乱的帖子道歉.
Gil*_*il' 112
这是命令自动更正,由correct选项激活.它与完成无关.你看到了_ruby因为zsh认为没有ruby命令,它提供_ruby了最近的现有匹配.
如果你刚刚安装了ruby,可能之前zsh已经记住了可用命令列表,并且它并不总是试图查看命令是否出现在两者之间.在那种情况下,运行hash -rf.未来的zsh会话不会出现此问题,因为该ruby命令在启动时已经存在.
有时候,当你改变你的时候PATH,zsh会忘记一些哈希命令.该选项hash_listall有助于解决此问题.如上所述,如果您可以强制zsh刷新其命令缓存hash -rf.
gpr*_*ant 14
我发现自动更正功能有时会让人讨厌.所以我在〜/ .zshrc中做,
DISABLE_CORRECTION="true"
Run Code Online (Sandbox Code Playgroud)
即使未安装该命令,我也遇到了同样的问题。
CORRECT_IGNORE我可以使用我的变量来解决它.zshrc
# OPTs to enable
setopt HASH_LIST_ALL
setopt CORRECT
# Zsh variable to determine what to ignore,
# in this case everything starting with _ or .
CORRECT_IGNORE="[_|.]*"
Run Code Online (Sandbox Code Playgroud)
我希望它对您或任何遇到此问题的人有所帮助