zsh 자동 고침을 부분적으로 비활성화하는 방법


36

zsh의 자동 수정 기능은 나에게 매우 도움이되지만 항상 적절한 결과를 제공하는 것은 아닙니다.

~$ sudo vim somefile
zsh: correct 'vim' to '.vim' [nyae]? 

그러나 내가 원하는 것은 영원히 그런 명령을 수정하는 것을 막을 수 있는 절대 옵션과 같습니다.

어떻게해야합니까?

답변:


53

zsh에게 .zshrc에서 접두어 'nocorrect'로 별명을 지정하여 특정 명령에서 자동 수정해서는 안된다고 알릴 수 있습니다 (예 : http://dzen.geekmode.org/wiki/wiki.cgi/-main/ZshConfiguration ). :

alias vim='nocorrect vim' 

또는이 화이트리스트 프로세스가 너무 답답해지면 .zshrc에서 다음을 사용하여 자동 고침을 완전히 해제 할 수 있습니다.

최신 버전의 zsh를 사용하려면 다음을 사용하십시오.

 unsetopt correct

이전 버전의 zsh 사용 :

 unsetopt correct-all

추가 수정 : 여기 에이 주제에 대한 이전 토론이 있습니다 -zsh correctall 기능의 예외?


1
vim 명령이 시작될 때 작동하지만와 같은 명령에서는 작동하지 않습니다 bundle exec cucumber <some_specific_feature> && bundle exec rspec <some_specific_spec>. rspec에 대한 별칭을 추가했습니다. 팁이 있습니까?
Martin Foot

@MartinFoot : oh-my-zsh를 사용하면 번 들러 플러그인이 도움이 될 수 있습니다. coderwall.com/p/weixga
brafales

1
새로운 버전의 unsetopt correct_all변경unsetopt correct
항독소의

@antitoxic : 나는 버전 번호 수단의 측면에서 무엇을 "새 버전"를보고 싶었지만, 오늘날의 자식 체크 아웃 (zsh을 5.0.2 + 31,433)을에 zshoptions대한 맨 페이지 상태 CORRECT_ALL: 줄에 모든 인수의 철자를 수정하려고 . 더욱이 2008 년 이후로 두 사람의 출전 CORRECTCORRECT_ALL출전은 변경되지 않았습니다. 당신의 진술로 이어지는 것을 설명해 주시겠습니까?!
mpy

로드 순서가 중요합니다! oh-my-zsh를 소싱 한 후에 unsetopt를 추가했는지 확인하십시오. 내 시간을 많이 낭비했습니다.
oma

22

나는 이것에 대한 더 나은 대답을 찾았다 고 생각합니다.

버전과 그 밖의 것들에 대해서는 확실하지 않지만 correct_all명령 인수 를 수정 하는 것으로 보이지만 명령 correct만 수정 하므로이 성가신 행동을 제거합니다.

이것이 구성 파일에있는 것입니다.

unsetopt correct_all  
setopt correct

이것이 실제 답변입니다. correct-all내가 찾을 수있는 문서 나 실제 생활에서 실제 옵션이 아닌 것 같습니다. 그것은이다 correct_all. 감사!
Jamey

zsh.sourceforge.net/Intro/intro_16.html에서 optrectall을 설정했습니다.
zzapper

너는 나의 영웅이야!
Martin K

oh-my-zsh를 사용하는 경우 두 줄을 입력하십시오 source $ZSH/oh-my-zsh.sh. 그렇지 않으면 작동하지 않습니다. oh-my-zsh가 correct_all 옵션을 재설정하는 것 같습니다.
Matt

0

rspecvia을 사용할 때 문제가 zeus있었고을 제외한 다른 모든 항목에서 작동하는 것처럼 자동 수정 설정을 유지하고 싶습니다 rspec. 위의 다른 제안은 시도하지 않았습니다.

내가해야했던 일은 nocorrect제우스 자체 였습니다 .

별명 zeus = '정확하지 않은 제우스'


0

자동 수정 기능을 사용하여 비활성화 할 수있었습니다.

ENABLE_CORRECTION="false"

zsh 버전 5.7.1을 사용하고 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.