这并不完全是重复的,因为我希望 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
添加的原因)。