使用 zsh 的 `mv` 命令时是否有一种(最好是非 kludgey)方法来避免拼写更正

使用 zsh 的 `mv` 命令时是否有一种(最好是非 kludgey)方法来避免拼写更正

虽然我喜欢 zsh,并且发现它的拼写纠正很有用,但它纠正了一些错误,这很烦人。明显地不应该被纠正。例如,我刚刚执行

mv iso_ iso

它回复了

zsh: correct 'iso' to 'iso_' [nyae]?

想一想。将“iso”更正为“iso_”意味着我正在尝试执行

mv iso_ iso_

这永远都说不通。因此,这确实是 zsh 的一个设计缺陷,应该全面纠正。但是,鉴于它还没有被纠正(至少在我使用的版本中),而且不太可能被纠正,是否有一些设置可以纠正它?我更喜欢一种非笨拙的修复方法。mv例如,的别名就是笨拙的。

答案1

有一种笨拙的方法可以解决这个问题。要纠正mvcp和的行为mkdir,请将其添加到您的 .zshrc 文件中:

alias mv='nocorrect mv'
alias cp='nocorrect cp'
alias mkdir='nocorrect mkdir'

由于多种原因,这不是一个理想的解决方案,其中最重要的一个原因是,有时您可能会遇到以下情况:想要mv命令的拼写更正。例如,如果您尝试执行:

mv directory_a/sub/sub/some_file directory_b/sub/sub/

但你拼错了其中一个目录并最终输入

mv directory_a/sub/sub/some_file directry_b/sub/sub/

拼写纠正可能会有帮助。 (这显然是一个人为的例子,但你明白了。)

答案2

correct_all好吧,如果您不喜欢该选项的功能,请不要使用它。

FWIW,默认情况下未设置。网上有一个流行的配置(我不会说是哪个),出于某种原因,它认为为每个人设置该选项是一个有趣的想法......但是,它对于许多应用程序来说没有意义。它使每一个命令行参数需要进行文件名拼写纠正...这太疯狂了。

长话短说:只有setopt correct并且不是 setopt correctall

如果您需要有关文件名拼写的帮助,zsh 的完成系统可以帮助您完成它_approximate_correct完成器。详细信息可以在zshcompsys(1)手册页中找到。

相关内容