如何完全禁用 zsh 自动更正?
我知道“nocorrect”选项仅适用于某些命令。但我希望将其完全关闭,这样当我输入“lear”而不是“clear”时,它就不会提示更正。
我应该注意到'unsetopt correctall'似乎对我没有任何作用
collin@mandalay ~
% unsetopt correctall
collin@mandalay ~
% lear
zsh: correct 'lear' to 'clear' [nyae]? n
zsh: command not found: lear
答案1
在你的 .zshrc 文件中:
#disable auto correct
unsetopt correct_all
来自 zsh(zshoptions)的手册页:
CORRECT (-0)
Try to correct the spelling of commands. Note that, when the HASH_LIST_ALL option is not set or when some directories in the path are not readable, this may falsely report spelling errors the first time some commands are used.
CORRECT_ALL (-O)
Try to correct the spelling of all arguments in a line.
所以正确的选项将仅更正命令而不是行上的参数。
这全部正确选项将更正命令和行上的所有参数。
答案2
只需输入以下几行.zshrc
对我不起作用。
unsetopt correct_all
unsetopt correct
它作品在我注释掉这一行之后:
ENABLE_CORRECTION="true"
希望它也对你有用。
答案3
啊!...我发现我应该使用“unsetopt correct”而不是correct_all
collin@mandalay ~
% unsetopt correct
collin@mandalay ~
% lear
zsh: command not found: lear
答案4
如果您碰巧使用 grml 配置(但不知何故忘记了):请将以下行添加到您的 .zshrc.pre 或 .zshrc.local:
否COR=1
正如其他人所提到的,正常方法是使用unsetopt correct_all
and/or unsetopt correct
- 但这被 grml 配置覆盖。