gVim没有使用oh-my-zsh的环境变量



背景:

Ubuntu 14.10 x64
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 20 2014 16:09:34)
Patch incluse: 1-273
Last oh-my-zsh version (master)

问题:

如果我从命令行运行 gVim(例如终止符(,那么在我的$HOME/.zshenv中导出的环境变量将正确设置为 gVim(:echo $SOMETHINGDEFINEDINZSHENV有效,:!echo $SOMETHINGDEFINEDINZSHENV也有效(如果我从 Ubuntu 图标运行 gVim,那么我的$HOME/.zshenv中定义的环境变量都不会在 gVim 中导出我已经将 zsh 设置为 chsh 的默认 shell,gVim 内部和外部的每个echo $SHELL都会打印/bin/zsh我已经尝试设置set shell=/bin/zshset shell=/bin/sh

有人对此有任何提示吗?

当您在终端中启动gvim时,它会继承在那里运行的zsh的环境。此zsh会话从运行它的终端和~/.zshenv中的设置中获得自己的环境。终端反过来从启动它的进程以及一些自己的设置(例如 TERM (。等等...

如果从其图标启动gvim,它将从窗口管理器(Unity?(继承环境,因为它由WM启动。WM从X(也许还有一些自己的设置(获得环境。由于这些进程(通常(都不是由zsh实例启动的,因此永远不会加载~/.zshenv中的设置。

如果要为所有用户的进程设置环境变量,则应在~/.pam_environment中执行此操作(/etc/environment所有用户(。其中的变量在登录时设置,然后将被之后启动的其他进程继承,包括您的窗口管理器。 ~/pam_environment应该只是KEY=VALUE语句的列表(即不需要export,可能会导致错误(。

最新更新