完全禁用 zsh 自动更正

完全禁用 zsh 自动更正

如何完全禁用 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_alland/or unsetopt correct- 但这被 grml 配置覆盖。

相关内容