不进行自动更正时如何教 zsh?

不进行自动更正时如何教 zsh?

我喜欢 ZSH 的自动更正功能,但有时它会妨碍:

  • 如果我有一个cli目录,当我尝试运行npm run ci.
  • 运行 Docker 命令时,docker run -v /some/dir:/var/www它会尝试自动更正为/some/dir/var/www
  • ... 还有很多

现在我想要关闭自动更正或在命令前面加上nocorrect.我想要的是更多的“学习”自动更正,它包含了正常的建议,计算我对建议说“不”的次数,并且如果我说“不”3次就不再建议它。我这样的事情可能吗?

答案1

不,这是不可能的。您可以使用$CORRECT_IGNORE$CORRECT_IGNORE_FILE告诉 Zsh 不要建议某些更正,但你不能告诉 Zsh 不纠正某些输入。因此,尝试编写一个函数来收集所有不应更正的单词甚至没有意义,因为没有办法将此信息传达给 Zsh。

您可能最好使用 just setopt CORRECT,它仅更正拼写错误的命令,而不是使用 not setopt CORRECT_ALL,它尝试更正全部的话就行了。如有必要,您可以用来unsetopt CORRECT_ALL取消设置。

另一种选择是使用插件zsh-histundo,它允许您通过按或命令历史记录中的任何上一行来编辑最后一个命令行hist。这可能是修复拼写错误的更可靠的方法。

相关内容