在zsh中通过参数进行抑制校正

时间:2014-07-19 03:42:42

标签: linux zsh zsh-completion

假设我有文件树

-A_dir/
  - a_test_file1

执行mv a_test_file1 a_test_file2会导致恼人的更正查询。 mv的第二个参数永远不应该被纠正,因为它可能会或可能不会指向文件系统上的现有节点。但是,第一个参数可能会被更正,因为它必须始终是一个有效的节点。

这是一个常见的用例,我只希望zsh更正命令中的某些参数。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

将此作为答案,因为评论的文字过多......但这确实是一个评论。

老实说,粗略阅读一本手册表明,如果没有深刻的讽刺,这是不可能的。 correct更正命令,correct_all尝试更正所有参数。

我想过做像

这样的事情
function mv {
  emulate -L zsh
  CORRECT_IGNORE='*'$@[-1]'*'
  command mv $@
}

但它不起作用,因为CORRECT_IGNORE不适用于文件名的更正。如果您可以从参数列表中找到如何生成更正,则可以为要更正的所有参数生成更正,然后调用nocorrect mv ...