ZSHでさまざまな構成ファイルを使用する(他の端末アプリケーションで)

ZSHでさまざまな構成ファイルを使用する(他の端末アプリケーションで)

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 $PPIDzshというプログラムを確認できます。

TERM環境変数を確認することもできますが、多くの端末エミュレータはほとんどxtermxtermと互換性があるため、環境変数を設定します。 IDE統合端末の設定は、TERMその端末の機能によって異なります。たとえば、EmacsはTERM=dumbin M-x shell(Emacsがバージョン機能の制御を維持する単純なコマンドライン)を使用しますが、TERM=eterm-colorin M-x term(完全な端末エミュレータ)を使用します。

一部のアプリケーションは環境変数を設定します。ムルが指摘したようにアイテムセットITERM_PROFILE。シェルから別の端末エミュレータを起動すると、2番目のエミュレータのシェルは最初のエミュレータの変数を継承します。したがって、$ITERM_PROFILE親プロセスがItermであることを確認した後にのみ設定したいと思います。

代替的または補完的なアプローチは、呼び出し側プログラムにタスクを実行させることです。 Zshは、ディレクトリから設定ファイルを読み取る$ZDOTDIRか、設定されていない場合はホームディレクトリに戻ります。デフォルト設定を適用していくつかの変更をしたい場合は、別のディレクトリから読み込むことがZDOTDIRできます。$HOME/.zshrc.zshrc

関連情報