使用 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)手冊頁中找到。

相關內容