[英]oh-my-zsh: git maximum nested function level reached
使用標准 git 命令時出現錯誤:
[~/site]$ git branch
git:1: maximum nested function level reached
.zshrc:
plugins=(git osx colored-man gem brew go bundler rake rails)
source $ZSH/oh-my-zsh.sh
我的錯誤,我將bash函數移動到zsh:
gr() {
git rebase -i HEAD~$1
}
解:
function gr() {
git rebase -i HEAD~$1
}
我有同樣的問題,使用不同的命令: find
不要在函數腳本內調用函數的別名。
➜ ~ find ~ -name some_thing
find_no_permission_err:1: maximum nested function level reached; increase FUNCNEST?
find_no_err
),它使用命令c ( find
)alias c=f
# the recursion issue
c=f(c)
避免調用在其腳本中調用給定函數的函數或命令的別名
或者,在c=f(c)
的情況下,不要調用c
形式f
相反,請使用以下 3 個選項之一:
cmd
) ./cmd
# to get it, in linux systems, use
whereis cmd
'cmd'
我只是在函數體內引用了 find 調用
find_no_err(){
'find' $* 2>/dev/null
}
然后獲取文件(參見“源文件”的zsh 文檔,“點描述”的POSIX 規范)
這些問題似乎很相似:一個 git 調用調用了一個調用其調用者的 git 別名/函數......
omz 的git plugging ,添加一長串 git 別名,其中有
alias gr='git remote' # line 246
這可能與 OP 自定義函數有一些沖突,在git branch調用之后(但我不知道如何)
添加可選的(參見zsh doc ) function
標識符不會阻止函數體內的別名調用(默認情況下)。 這導致遞歸問題,它拋出“達到最大嵌套函數級別;” 錯誤
您可以unset
或刪除更改,如bluenote10答案中所述
由於意外的遞歸函數定義導致不同的命令( export
)出現相同的錯誤。 我可以通過刪除不需要的功能來解決問題:
unset -f export
關閉終端並重新打開它,對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.