为什么 zsh 中只有某些插件可以工作,而其他插件却不能?

时间:2021-06-02 05:47:53

标签: macos terminal zsh

这是我的完整 .zshrc:

export ZSH="/Users/butters/.oh-my-zsh"

source $ZSH/oh-my-zsh.sh
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh

plugins=(
    git
    bundler
    dotenv
    osx
    zake
    zsh-syntax-highlighting
    zsh-autosuggestions

)

似乎只有当 source $ZSH/oh-my-zsh.sh 放在其余插件之上时,我的自定义插件才能工作,但所有其他插件(例如 osx)都停止工作。当我将它放在其余部分下方时,osx 可以工作,但 zsh-syntax-highlighting 和 zsh-autosuggestions 停止工作。

1 个答案:

答案 0 :(得分:1)

plugins$ZSH/oh-my-zsh.sh 使用的数组。您需要在调用后者之前初始化前者。仅初始化 plugins 在 Zsh 中不会做任何事情(除了创建一个普通的旧数组)。

zsh-syntax-highlightingzsh-autosuggestions 在他们的文档中明确提到它们应该任何其他插件之后获得。

最后,如果您要手动 source 插件,则无需将其添加到 Oh-My-Zsh 的 plugins 数组中。

因此,对于您的设置,这是正确的操作方式:

ZSH="/Users/butters/.oh-my-zsh"
plugins=(
    git
    bundler
    dotenv
    osx
    zake
)
source $ZSH/oh-my-zsh.sh

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh