
雖然我喜歡 zsh,並且發現它的拼字糾正很有用,但它糾正了一些錯誤,這很煩人。明顯地不應該被糾正。例如,我剛剛執行
mv iso_ iso
它回復了
zsh: correct 'iso' to 'iso_' [nyae]?
想一想。將“iso”更正為“iso_”意味著我正在嘗試執行
mv iso_ iso_
這永遠沒有意義。因此,這確實是 zsh 的一個設計缺陷,應該要全面修正。但是,考慮到它還沒有(至少在我使用的版本中)並且不太可能是,是否有一些設定可以修正它?我更喜歡一種非笨拙的方式來修復它。mv
例如,的別名就很雜亂。
答案1
有一種笨拙的方法可以解決這個問題。若要修正mv
、cp
和的行為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)
手冊頁中找到。