다음 함수를 생성하면
function :() {
echo "hi"
}
그런 다음 문자를 입력할 때마다 함수가 실행됩니다.입력하면서 을 클릭하기 전에 return!
이건 내 몸에 뭔가가 있어서 .zshrc
그런 것 같아아니요Z 쉘을 시작하면 이런 일이 발생 zsh -f
하지만 Bash에서는 발생하지 않습니다.
이 이상한 동작의 원인을 어떻게 알 수 있습니까?
답변1
내장 함수는 아무 작업 :
도 수행하지 않습니다.조치 없음). zsh의 완성 코드를 포함하여 여러 곳에서 사용됩니다. 키 바인딩과 관련된 일부 코드에서 사용될 가능성이 높습니다. 함수로 이를 재정의하는 경우 함수가 여러 번 호출될 것으로 예상됩니다.
표준 명령 이름을 완전히 다른 이름으로 덮어쓰는 것은 좋지 않습니다. 하지만 자신만의 를 정의하고 싶다면 :
별칭(더 길고 명확한 이름을 가진 함수)으로 만드세요. 이렇게 하면 완료 코드를 포함하여 자동 로드된 함수(옵션 autoload
없이 -U
명시적으로 자동 로드되는 함수 제외 - 따라서 를 사용할 때마다 를 autoload
전달 -U
) 에 영향을 미치지 않습니다 .