複数の.zshrcを使用する方法は?

複数の.zshrcを使用する方法は?

別のzshrcを使用し、変数を保存してロードする単一のファイルを使用して1つを選択したいと思います。調べましたが、iTerm2のみです。どんなサポートにも感謝します。ありがとうございます。

答え1

私はAmintが文書化したのと同様のことをしました。これはbash用ですが、Fishでも同じことをし、明らかにzshでも動作します。

私の.bashrcが扱いにくくなり、いくつかのライブラリ(プロンプト関数、エイリアス、他のコマンドをラップする関数など)に分割し、使用しているコンピュータに応じて個別に作業しました。

if [[ -d ~/.bash.d ]]; then
    shopt -s nullglob
    for file in ~/.bash.d/*.bash; do
        source "$file"
    done
    if [[ -d ~/.bash.d/"$(hostname)" ]]; then
        for file in ~/.bash.d/"$(hostname)"/*.bash; do
            source "$file"
        done
    fi
    shopt -u nullglob
    unset file
fi

したがって、新しいものを作成すると、適切なディレクトリに配置でき、次のbashセッションでアクティブになります。

答え2

(Bashファイルと.*rcファイルを含むすべてのシェルでも可能です。)

これを行うには、次のディレクトリ設定を指定できます。

~/
 .zshrc (main rc to choose profile)
 .zshenv (sources each rc)
 .zsh/profiles/ (rcs)
              zshrc1.zsh
              zshrc2.zsh
              ... 

まず、zshrcの先頭に以下を追加します。

# Chooses zshrc1.
RC1_ENABLE="false"

# Chooses zshrc2.
RC2_ENABLE="false"

# Paste and edit to your likings.
source $HOME/.zshenv

次に、.zshenv ファイルを作成し、次のコンテンツを追加します。

if [[ "$RC1_ENABLE" == "true"  ]]; then
  echo "{zshenv} Setting RC1 up with ZSH."
  source "$HOME/.zsh/profiles/zshrc1.zsh"
fi

if [[ "$RC2_ENABLE" == "true" ]]; then
  echo "{zshenv} Setting RC2 up with ZSH."
  source "$HOME/.zsh/profiles/zshrc2.zsh"
fi

次に、.zsh/profiles ディレクトリを作成します。しかし、これはあなたが望むものにすることができます。

次に、zshenvファイルに追加した名前でRCを追加します。

次にデフォルトの zshrc に戻り、次の行のいずれかを編集して RC を有効にします。

# Chooses zshrc1.
RC1_ENABLE="false"

# Chooses zshrc2.
RC2_ENABLE="true"

次に、新しいzshセッションを開きます。

{zshenv} Setting RC2 up with ZSH.
user@hostname ~ $

素晴らしいです!これでRCを切り替えることができます。同時に2つのRCを使用することもできます。テーマ(Oh My ZSH!、Prezto、またはbash(可能)、Bash-itを介して行う場合)を使用している場合は、他のテーマを使用するときに注意してください。

これを行う理由は、個人、職場、学校のメッセージによるものです。テーマを使用したい場合がありますが、元の古いホスト名%に固執したい場合があります。別の別名を使用することもできます。独立した機能、予備のRC、すべてが可能です。

さまざまなプロンプトを試してください。

関連情報