Oh-My-Zsh가 내 기능을 무시하나요?

Oh-My-Zsh가 내 기능을 무시하나요?

저는 Oh My Zsh와 함께 ZSH를 사용하고 있으며 다음과 같은 함수를 정의하려고 합니다 git.

function git() { echo "I'm happy because I am executed!" }

에 함수 정의를 배치했습니다 $ZSH/custom/general.zsh.

이 함수를 제외하고 파일의 다른 모든 항목은 작동합니다(거기에는 많은 별칭이 있습니다).

실행 which git출력:

git () {
    case $1 in
        (commit|blame|add|log|rebase|merge) exec_scmb_expand_args "$_git_cmd" "$@" ;;
        (checkout|diff|rm|reset) exec_scmb_expand_args --relative "$_git_cmd" "$@" ;;
        (branch) _scmb_git_branch_shortcuts "${@:2}" ;;
        (*) "$_git_cmd" "$@" ;;
    esac
}

git그것을 제거해도 plugins=( ... )소용이 없습니다 . Oh My Zsh에서 이 기능을 찾으려고 시도했지만 결과가 나오지 않았습니다.

소스 코드를 읽어보니 OMZ의 모든 파일이 로드된 후에 디렉토리가 로드되는 oh-my-zsh.sh것 같아서 custom함수를 넣어도 전혀 이해가 되지 않습니다.바닥에 .zshrc효율적인.

custom폴더 에 기능을 유지하는 방법에 대한 아이디어가 있습니까? 나는 일을 정리하고 싶다.

답변1

당신은 아마도 그것을 설치했을 것입니다 scm_breeze. 내 이론은 당신의 .zshrc구매 에 scm_breeze.sh앞서 있습니다 oh-my-zsh.sh. git 함수 정의를 끝에 넣으면 .zshrc과용할 수 있으므로 scm_breeze.sh이것이 작동하는 이유입니다.

  1. 소스 라인을 소스 코드 oh-my-zsh.sh의 맨 끝 .zshrc이나 적어도 소스 코드의 끝을 지나는 위치로 이동해 보십시오 scm_breeze.sh. zsh를 다시 시작하여 작동하는지 확인하십시오. (또는 완전히 제거할 수도 있습니다 scm_breeze.sh)

  2. 그래도 작동하지 않으면 귀하 .zshrc와 귀하의 모든 것을 백업 한 oh-my-zsh다음 빈 것을 만들고 .zshrc삭제하고 다시 설치 한 다음 oh-my-zsh, curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | shfunction git() { echo "I'm happy because I am executed!" }$ZSH/custom/general.zs나는 이것을 테스트했고 그것은 나에게 효과적입니다.. 그런 다음 이전 설정을 점차적으로 다시 적용하여 구성이 정확히 무엇인지 단계별로 확인할 수 있습니다.

관련 정보