macOSのさまざまな端末アプリケーションでさまざまなZSHプロファイルを使用したいと思います。たとえば、iTermではプロンプト設定Aがいくつかあるプロファイルを使用し、Terminal.appで別のエイリアスセットを持つプロファイルを使用し、IDE(VS Code、IntelliJなど)の統合端末内で別の設定ファイルを使用します。
ターミナルアプリケーションを使用すると、ユーザーは「シェルを開く」コマンドを指定できます。たとえば、私の/bin/zsh
場合、これはデフォルト値でした。他のターミナルアプリケーションの正しい設定で異なる ".zshrc"ファイル設定があります。たとえば、「vscode.zshrc」、「iterm.zshrc」、「intellij.zshrc」、「bestconfigever.zshrc」などです。
どうやってこれを達成できますか?
ベストアンサー1
(親プロセスのコマンド名を取得する)を使用してps -o comm= -p $PPID
zshというプログラムを確認できます。
TERM
環境変数を確認することもできますが、多くの端末エミュレータはほとんどxterm
xtermと互換性があるため、環境変数を設定します。 IDE統合端末の設定は、TERM
その端末の機能によって異なります。たとえば、EmacsはTERM=dumb
in M-x shell
(Emacsがバージョン機能の制御を維持する単純なコマンドライン)を使用しますが、TERM=eterm-color
in M-x term
(完全な端末エミュレータ)を使用します。
一部のアプリケーションは環境変数を設定します。ムルが指摘したようにアイテムセットITERM_PROFILE
。シェルから別の端末エミュレータを起動すると、2番目のエミュレータのシェルは最初のエミュレータの変数を継承します。したがって、$ITERM_PROFILE
親プロセスがItermであることを確認した後にのみ設定したいと思います。
代替的または補完的なアプローチは、呼び出し側プログラムにタスクを実行させることです。 Zshは、ディレクトリから設定ファイルを読み取る$ZDOTDIR
か、設定されていない場合はホームディレクトリに戻ります。デフォルト設定を適用していくつかの変更をしたい場合は、別のディレクトリから読み込むことがZDOTDIR
できます。$HOME/.zshrc
.zshrc