CORRECT_IGNORE
If set, is treated as a pattern during spelling correction. Any
potential correction that matches the pattern is ignored. For
example, if the value is `_*' then completion functions (which,
by convention, have names beginning with `_') will never be
offered as spelling corrections. The pattern does not apply the
correction of file names, as applied by the CORRECT_ALL option
(so with the example just given files beginning with `_' in the
current directory would still be completed).
我已经使用 zsh 大约 18 年了,我必须说我不喜欢接受的解决方案。原因如下:
您需要找出问题的根源 - 确定为什么提供“tda”作为更正选项。您所做的是在全球范围内完全禁用拼写更正。在尝试摆脱战术问题时,这会拒绝您提供一些非常好的功能。这就像因为你懒得弄清楚苍蝇拍在哪里,就想通过引爆炸药来杀死家里的一只苍蝇:它可能会解决问题,但你会牺牲很多作为回报。:)
在确定 zsh 当前的拼写纠正配置之前,您应该考虑将特殊 shell 变量 $CORRECT_IGNORE 的值设置为 'tda'。
这是 zsh 手册页中的条目:
这应该可以帮助您度过难关,直到您可以确定 'tda' 的实际来源。
另请注意,您可以使用前置命令修饰符 'nocorrect' 在每个命令的基础上禁用拼写更正。你可以用它来做一些有点笨拙但有效的事情:
别名只是由 zsh 替换到命令行中的标记,并且这些替换被重新扫描以查找其他别名。所以上面应该工作。
希望这些替代方案为您提供了一种更有选择性的方法来解决您的问题,同时仍然让您受益于 zsh 丰富的拼写纠正功能。
祝你好运!
尝试
我默认关闭拼写更正。
如果有效,请将其添加到您的.zshrc文件中。