我应该将 zsh 的环境相关配置放在哪里?

我应该将 zsh 的环境相关配置放在哪里?

我在 github 上有一个存储库,其中包含我的大部分点文件,包括像.zshrc.

当我需要转移到新的开发环境时,我只需要从 github 中提取我的点文件并确保它们位于正确的位置。

但有时新环境与旧环境有很大不同,例如,我可能需要从 MacOS 迁移到某个 Linux 发行版。

这些差异可能会导致我的配置不正确,所以我想知道我是否可以将所有这些依赖于环境的配置移出.zshrc并保存在一些外部文件中。

答案1

您可以使用 加载其他~/.zshrc文件source FILENAME

我有以下操作来~/.zshrc处理所有扩展.zsh名为~/.zshrc.d

# load additional configuration
if [[ -d ~/.zshrc.d ]]; then
    for file in ~/.zshrc.d/*.zsh; do
        source "$file"
    done
    unset file
fi

然后,您只需将特定环境所需的文件放置在其中即可。

您甚至可以更进一步,为每个环境创建一个子目录,然后仅加载所需的子目录。例如,基于以下内容$OSTYPE

if [[ -d ~/.zshrc.d/${OSTYPE} ]]; then
    for file in ~/.zshrc.d/${OSTYPE}/*.zsh; do
        source "$file"
    done
    unset file
fi

相关内容