在 ZSH 中使用不同的配置文件(在不同的终端应用程序中)

在 ZSH 中使用不同的配置文件(在不同的终端应用程序中)

我希望在 macOS 上将不同的 ZSH 配置文件与不同的终端应用程序一起使用。例如,在 iTerm 中使用具有某些提示配置 A 的配置文件,在 Terminal.app 中使用具有不同别名集的配置文件,并在 IDE 中的集成终端(VS Code、IntelliJ 等)内使用具有一些启动脚本的另一个配置文件。

终端应用程序允许用户指定“shells open with”命令。例如,/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=dumbin M-x shell(简单的命令行,其中 Emacs 保持对版本功能的控制),但TERM=eterm-color使用 in M-x term(成熟的终端仿真器)。

一些应用程序设置环境变量,例如正如 muru 所指出的项集ITERM_PROFILE。请注意,如果您从 shell 启动不同的终端模拟器,则第二个模拟器中的 shell 会继承第一个模拟器中的变量。因此,您可能只想$ITERM_PROFILE在检查父进程是 Iterm 后进行设置。

另一种或补充的方法是让调用程序完成工作。 Zsh 从目录中读取其配置文件,如果未设置,$ZDOTDIR则返回到您的主目录。如果您想应用默认设置并进行一些修改,您可以从不同的目录中ZDOTDIR加载。$HOME/.zshrc.zshrc

相关内容