別の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、すべてが可能です。
さまざまなプロンプトを試してください。