Zsh——更智能的自动更正

Mis*_*iev 4 shell zsh

是否有可能让 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

Gil*_*il' 5

Zsh 附带了大量补全,但有一组较小的修正。有许多命令对完成很有用但不能纠正;例如,完成mkdir(在现有目录中创建目录)的参数而不是更正它们是很有用的。该correct_all选项非常苛刻,因为它会在任何地方打开校正;不幸的是,只有在提供一组正确的输入时才可以进行更正。

您可以通过设置corrections标签来自定义给定命令的更正,并通过制作_correct一部分来自定义是否执行更正matcher-list。这些是用zstyle内置设置的。