oh-my-zsh를 사용하여 zsh에서“자동 CD”를 비활성화하는 방법


29

인터넷 검색 결과가 표시되지 않았습니다. 여기의 의미는 다음과 같습니다 I라는 이름의 바이너리 파일이 x내 경로 (안 현재 폴더를, 그러나에 PATH)하고, 또한 현재 작업 디렉토리에 같은 이름의 폴더. 을 입력 x하면 바이너리가 실행되기를 원하지만 대신 해당 폴더에 들어갑니다. 이 문제를 어떻게 해결합니까?

답변:


46

하나의 세 가지 질문 ;-)

AUTO_CD 옵션 및 찾는 방법

찾고있는 모든 옵션 중 AUTO_CD입니다. 찾아 보면 쉽게 찾을 수 있습니다 man zshoptions. 호출기 검색 기능을 사용하십시오. 일반적으로 /키워드 를 누르고 입력하십시오. 함께 n사용하면 다음 항목으로 이동합니다. 그러면 다음이 나타납니다.

[..]
   Changing Directories
       AUTO_CD (-J)
              If  a  command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory.
[..]

옵션을 사용하여 설정을 해제 할 수 있습니다 unsetopt AUTO_CD.

제대로 끄기

oh-my-zsh를 사용하고 있습니다.

"zsh 구성 관리를위한 커뮤니티 중심 프레임 워크"120 개 이상의 선택적 플러그인 (레일, 자식, OSX, 허브, 카피 스트라 노, 추출, 개미, 맥 포트 등)이 포함되어 있습니다.

다음으로 프레임 워크에 따라 옵션을 활성화 / 비활성화하는 방법을 찾아야합니다.

readme.textile 파일 다음 선호하는 방법은 활성화하는 것을 주 / 비활성화 플러그인은 .zshrc에있는 항목이 될 것 plugins=(git osx ruby) AUTO_CD 옵션을 사용하는 플러그인을 알아보십시오. 맨 페이지에서 발견 된대로 -J 스위치 또는 AUTO_CD를 통해 호출 할 수 있습니다. github에서 oh-my-zsh를 사용할 수 있으므로 검색하면 파일이 켜집니다 lib/theme-and-appearance.zsh. 전체 플러그인 "테마 및 모양"을 비활성화하지 않으려면 unsetopt AUTO_CD.zshrc에을 넣으 십시오. 프레임 워크를 업데이트하는 경우 변경 사항이 손실되므로 oh-my-zsh 파일을 직접 수정하지 마십시오.

실행 파일이 직접 호출되지 않는 이유

세 번째 질문은 직접 바이너리를 실행 하우투입니다 : 당신은 접두사로 예를 들어, 경로를 통해 바이너리 파일을 실행해야 ./처럼 ./do-something. 이것은 일종의 보안 기능이므로 변경해서는 안됩니다. USB 스틱을 꽂고 장착 한 후을 살펴보십시오 ls. ls홈 디렉토리를 삭제 하는 실행 파일 이 있으면 $ PATH의 순서를 덮어 쓰기 때문에 모든 것이 사라집니다.

반복적으로 호출하는 명령이있는 경우 .zshrc에서 별칭을 설정하는 것이 일반적인 솔루션입니다.


4
대단히 감사합니다! 내가 필요한 것은 unsetopt auto_cd선 이었습니다 (실행 파일 내 경로에 있다고 명시 적으로 언급 했지만 그럼에도 불구하고 다른 사용자가 설명하는 데 도움이 될 수 있습니다).
Gabi Purcaru

정보를 찾은 방법에 대한 철저한 답변과 세부 정보를 제공해 주셔서 감사합니다 (따라서 다른 사람들이 이와 같은 정보를 나중에 찾을 수 있도록 도와줍니다).
후행 슬래시

2
마지막 단락은 의미가 없습니다. OP는 PATHautocd보다 우선하는 환경 변수에 바이너리 를 묻습니다. 이 중 하나를 지정하지 않고 경로에서 실행 파일을 실행하는 쉘 스크립트의 무능력과 아무 상관이 없습니다 ./또는 /.
Qix

readme에 대한 첫 번째 링크가 작동하지 않습니다. 여기 있습니다. 또한 OMZ lib디렉토리는.와 plugins관련 이 없습니다 . 질문과 관련하여 올바른 명령은 unsetopt입니다.
Timo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.