Wo sollte ich umgebungsabhängige Konfigurationen für zsh platzieren?

Wo sollte ich umgebungsabhängige Konfigurationen für zsh platzieren?

Ich habe ein Repository auf GitHub, das aus den meisten meiner Dot-Dateien besteht, einschließlich Dateien wie .zshrc.

Wenn ich in eine neue Entwicklungsumgebung wechseln muss, muss ich nur meine Punktdateien von GitHub abrufen und sicherstellen, dass sie sich an den richtigen Stellen befinden.

Manchmal unterscheidet sich die neue Umgebung jedoch erheblich von der alten. Beispielsweise muss ich möglicherweise von MacOS auf eine Linux-Distribution umsteigen.

Diese Unterschiede können dazu führen, dass meine Konfigurationen falsch sind. Daher frage ich mich, ob ich alle diese umgebungsabhängigen Konfigurationen aus .zshrcexternen Dateien verschieben und in diesen speichern kann.

Antwort1

Sie können zusätzliche Dateien in Ihr laden ~/.zshrcmit source FILENAME.

Ich habe folgendes in meinem ~/.zshrcdafür zu tun für alle Dateien mit der Erweiterung .zshin~/.zshrc.d

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

Sie können dort dann nur die Dateien ablegen, die Sie für eine bestimmte Umgebung benötigen.

Sie können sogar noch einen Schritt weiter gehen und für jede Umgebung ein Unterverzeichnis erstellen und nur das benötigte laden. Beispielsweise basierend auf dem Inhalt von $OSTYPE:

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

verwandte Informationen