zsh의 `mv` 명령을 사용할 때 철자 수정을 피할 수 있는 (가급적이면 kludgey가 아닌) 방법이 있습니까?

zsh의 `mv` 명령을 사용할 때 철자 수정을 피할 수 있는 (가급적이면 kludgey가 아닌) 방법이 있습니까?

나는 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)매뉴얼 페이지에서 확인할 수 있습니다 .

관련 정보