我已经开始制作自己的oh-my-zsh
主题,但遇到了一些问题。我正在尝试根据分支的名称更改 git 输出的颜色,除了一个重要的警告之外,它工作得很好:它在zsh
启动时将颜色更改为正确的颜色,但从不重新评估颜色应该是什么除非我重新启动zsh
。
这是实际问题的屏幕截图:
我是否做错了什么,或者是否oh-my-zsh
支持zsh
这种事情?
答案1
我没有使用过 oh-my-zsh (呃-哦),但我确实使用了 zsh,它和其他 shell 都使用过不是在命令之间重新加载配置文件。您必须使用 source 命令显式重新加载它们:
source ~/.zsh_config_file_you_modified_or_another_file
或者
. ~/.zsh_config_file_you_modified_or_another_file
启动一个新的 zsh shell 就可以做到这一点(完全使用新的登录 shell,部分使用新的子 shell,就像您在上面的右窗格中所做的那样)。
登录时加载的 zsh 配置文件与普通 shell 上加载的 zsh 配置文件的完整列表是:
╔════════════════╦═══════════╦═══════════╦══════╗
║ ║Interactive║Interactive║Script║
║ ║login ║non═login ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zshenv ║ A ║ A ║ A ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zshenv ║ B ║ B ║ B ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zprofile ║ C ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zprofile ║ D ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zshrc ║ E ║ C ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zshrc ║ F ║ D ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zlogin ║ G ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zlogin ║ H ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║ ║ ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║ ║ ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║~/.zlogout ║ I ║ ║ ║
╠════════════════╬═══════════╬═══════════╬══════╣
║/etc/zlogout ║ J ║ ║ ║
╚════════════════╩═══════════╩═══════════╩══════╝
如果文件存在,它们首先加载到 A 中,然后加载到 B、C、D 等中。I 和 J 仅在注销/退出登录 shell 时加载/运行。