
저는 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
이것이 작동하는 이유입니다.
소스 라인을 소스 코드
oh-my-zsh.sh
의 맨 끝.zshrc
이나 적어도 소스 코드의 끝을 지나는 위치로 이동해 보십시오scm_breeze.sh
. zsh를 다시 시작하여 작동하는지 확인하십시오. (또는 완전히 제거할 수도 있습니다scm_breeze.sh
)그래도 작동하지 않으면 귀하
.zshrc
와 귀하의 모든 것을 백업 한oh-my-zsh
다음 빈 것을 만들고.zshrc
삭제하고 다시 설치 한 다음oh-my-zsh
,curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh
function git() { echo "I'm happy because I am executed!" }
$ZSH/custom/general.zs
나는 이것을 테스트했고 그것은 나에게 효과적입니다.. 그런 다음 이전 설정을 점차적으로 다시 적용하여 구성이 정확히 무엇인지 단계별로 확인할 수 있습니다.