我刚刚开始使用Zsh来获取我的Git状态等shell提示中的一些集成支持。
当我输入时:
ruby -v
确认我正在运行的ruby版本,Zsh询问我是否要将命令更改为_ruby。好之后,在提示符处说“no”并且命令按预期完成后,在确认我的命令正确后,我会继续在提示符下提出问题。
我假设有一个完成文件或类似的东西。
谢谢
更新
shell不再试图完成_ruby,它在关闭shell后几次停止响应。
我尝试多次清理文件,但是有一个“opts”变量,长度为50行或更长,并且所有行都在一起运行,有些行超过150个字符。如果您还想看到它,也许我可以通过电子邮件向您发送附件。 我真诚地为凌乱的帖子道歉。
答案 0 :(得分:111)
这是命令自动更正,由correct
选项激活。它与完成无关。您看到_ruby
,因为zsh认为没有ruby
命令,它提供_ruby
作为最近的现有匹配。
如果您刚刚安装了ruby
,zsh
可能会先记住可用命令列表,并且不会总是尝试查看命令是否出现在两者之间。在这种情况下,请运行hash -rf
。未来的zsh会话不会出现此问题,因为ruby
命令在启动时已经存在。
有时,当您更改PATH
时,zsh会忘记一些哈希命令。选项hash_listall
有助于解决此问题。如上所述,如果您可以强制zsh使用hash -rf
刷新其命令缓存。
答案 1 :(得分:19)
您可以创建别名:
alias ruby='nocorrect ruby'
当我输入.meteor
时zsh一直问我是否意味着meteor
因为自动更正仍然有用时,我就这么做了。
答案 2 :(得分:14)
我发现自动更正功能有时会让人讨厌。所以我在〜/ .zshrc中做,
DISABLE_CORRECTION="true"
答案 3 :(得分:2)
在更新后的某个时候,我启用了 命令自动更正 ,这是我不想要的。如果您遇到同样的情况并且想要还原它,请在〜/ .zshrc 文件中进行以下操作:
<style type="text/css">
ul {
margin: 0;
padding: 0;
}
li {
list-style-type: none;
}
#nav {
display: table;
table-layout: fixed;
text-align: center;
}
#nav li {
display: table-cell;
width: 25%;
padding-right: 1px;
height: auto;
vertical-align: bottom;
}
#nav a {
display: block;
min-height: 100%;
padding: 12px 50px;
background-color: #222;
color: white;
border-radius: 6px 6px 0 0;
}
.logoutLblPos{
position:fixed;
right:10px;
top:5px;
}
</style>
<body>
<div class="container">
<div class="row">
<div class="col-sm-5 col-sm-push-3 col-xs-4 col-xs-push-2">
<h1 class="text-center" style="font-family:Colonna MT;font-size:50px;color:ForestGreen ;">Welcome</h1>
<p class="lead text-center" style="font-size:20px;color:DarkSalmon;"><i>"This is caption"</i></p>
<label class="logoutLblPos">
<span class="glyphicon glyphicon-user" style="height:50px;width:20px"></span> User
<input name="submit2" type="submit" id="submit2" value="log out">
</label>
<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#"> tab2</a></li>
<li><a href="#">tab3</a></li>
<li><a href="#">tab4</a></li>
</ul>
</div>
</div>
</div>
</div>
# Uncomment the following line to enable command auto-correction.
或按照以下方式评论:
ENABLE_CORRECTION="false"
# Uncomment the following line to enable command auto-correction.
答案 4 :(得分:0)
请注意,在我的zsh(macOS上的版本5.7.1)上,DISABLE_CORRECTION无法正常工作。
我在.zshrc文件中看到了以下两行,然后将其注释掉了
setopt CORRECT
setopt CORRECT_ALL
为我做到了。
答案 5 :(得分:0)
即使未安装命令,我也遇到同样的问题。
我可以使用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="[_|.]*"
希望对您或任何遇到此问题的人有帮助