是否有可能让 Zsh 停止尝试更正不应该是包含当前目录中的文件的文件的参数,而无需完全关闭更正或将其限制为setopt CORRECT
(仅更正命令)?
例如,当CORRECT_ALL
设置为 时setopt
,会发生这种情况:
gris@arefiev: ~% cd srcc
change srcc to src-nyae? n
Run Code Online (Sandbox Code Playgroud)
到目前为止,很好(参数cd
应该是一个文件)。然而,
gris@arefiev: ~% man zile
change zile to .zile-nyae?
Run Code Online (Sandbox Code Playgroud)
什么?我希望它纠正zile
到.zile
时候man
被调用-C
选项。它还尝试更正ssh
, 第一个参数的主机参数sudo
等,这真的很烦人。
alias man='nocorrect man'
对于每个受影响的命令,我必须求助于拐杖:设置等,但显然这不是最好的解决方案。我也不喜欢CORRECT
并且更喜欢拐杖加号CORRECT_ALL
而不是CORRECT
.
zsh 是zsh 4.3.17 (x86_64-unknown-linux-gnu)
,Debian sid。
更新:这是我的.zshrc
http://pastebin.com/67mykgRv
Zsh 附带了大量补全,但有一组较小的修正。有许多命令对完成很有用但不能纠正;例如,完成mkdir
(在现有目录中创建目录)的参数而不是更正它们是很有用的。该correct_all
选项非常苛刻,因为它会在任何地方打开校正;不幸的是,只有在提供一组正确的输入时才可以进行更正。
您可以通过设置corrections
标签来自定义给定命令的更正,并通过制作_correct
一部分来自定义是否执行更正matcher-list
。这些是用zstyle
内置设置的。