zsh 내장 명령이 아닌 것을 입력하고 $PATH에 그러한 실행 파일이 없으면 zsh는 오류를 보고합니다. 대신, zsh가 해당 이름을 가진 명명된 디렉토리가 있는지 확인하고 그 디렉토리로 CD를 넣기를 원합니다.
command_not_found_handler() 함수를 정의해 보았지만 함수를 실행하기 위해 서브쉘을 포크하기 때문에 작동하지 않습니다. 그래서 디렉터리 변경 사항이 실제 쉘에 반영되지 않습니다.
일부 설정이나 새로운(유용한?) 기능을 통해 이미 가능합니까?
답변1
이것zsh 매뉴얼상태:
외부 명령을 찾을 수 없지만 함수가 존재하는 경우
command_not_found_handler
쉘은 모든 명령줄 인수를 사용하여 함수를 실행합니다. (…) 핸들러는 외부 명령을 실행하기 위해 분기된 서브셸에서 실행되므로 디렉터리, 셸 매개변수 등을 변경해도 기본 셸에는 영향을 미치지 않습니다.
따라서 zsh 패치 외에는 설명하는 작업을 수행할 수 없습니다.
명명된 각 디렉터리에 대해 함수를 만들 수 있습니다.
답변2
방금 설명하신 것 같아요자동 디스크.