有一个相当多的precmd(),比如检查VCS信息,我想在我在慢速安装的网络驱动器上导航时禁用它。
我想出了以下内容,我可以说slow
然后换成慢速驱动器而fast
将其更改回来,我想知道是否有更容易的事情?
precmd_slow() {
not_much
}
precmd_fast() {
precmd_slow
somemore1
somemore2
}
precmd() {
precmd_fast
}
slow() {
precmd() {
precmd_slow
}
}
fast() {
precmd() {
precmd_fast
}
}
答案 0 :(得分:2)
除precmd
函数外,还有一个名为precmd
的数组,其中包含要同时调用的函数列表。您可以自己操作它,但zshcontrib
有一个函数add-zsh-hook
来简化问题。
# precmd_slow and precmd_fast defined as before
autoload add-zsh-hook
add-zsh-hook precmd precmd_fast
fast () {
add-zsh-hook -d precmd precmd_slow
add-zsh-hook precmd precmd_fast
}
slow () {
add-zsh-hook -d precmd precmd_fast
add-zsh-hook precmd precmd_slow
}