阻止 ZSH 尝试将 ssh 更正为 .ssh 作为参数

阻止 ZSH 尝试将 ssh 更正为 .ssh 作为参数

这并不完全是重复的,因为我希望 Correct_all 仍然处于活动状态。我有时会搞乱争论,ZSH 很乐意帮助我。当我在我的主目录中并且我想使用类似的东西来管理 sshd 时,就会发生摩擦,systemctl reload ssh或者service ssh start它总是询问我是否要更正为.ssh.我通常在其中执行工作,$HOME所以这变得相当烦人。我已经尝试过alias ssh='nocorrect ssh'alias ssh='nocorrectall ssh'(我认为这没有任何作用)。关于如何解决这个问题有什么想法吗?

答案1

CORRECT_IGNORE_FILE。例如,忽略所有点文件的更正:

$ cd
$ PS1='%% ' zsh -f
% setopt CORRECT_ALL
% touch ssh
zsh: correct 'ssh' to '.ssh' [nyae]? a
% CORRECT_IGNORE_FILE='.*'
% touch ssh
% rm ssh

这记录在zshall(1)

   CORRECT_IGNORE_FILE
          If set, is treated as a pattern during  spelling  correction  of
          file  names.   Any  file  name that matches the pattern is never
          offered as a correction.  For example, if the value is `.*' then
          dot  file  names  will never be offered as spelling corrections.
          This is useful with the CORRECT_ALL option.

这需要一个较新的版本zsh(比 Centos 7 附带的版本更新)。如果您卡在旧版本上,zsh则需要禁用CORRECT_ALL或使用nocorrect来关闭每个有问题的命令的更正(这可能就是CORRECT_IGNORE_FILE添加的原因)。

相关内容