Ing*_*ngo 9 vim path environment-variables
因为 Ubuntu 没有为 TeXLive 提供最新的软件包,所以我手动安装了它。但是,某些程序需要 TeXLive 作为依赖项。所以我所做的是我从 Ubuntu 存储库中安装了 TeXLive 包,这是 2009 版本。然后我更改了我的 $PATH 以包含手动安装的 2011 版本,因此程序仍然始终指向并使用最新的 TeXLive 版本。到目前为止,这工作正常。
但这里有一个要点:当我切换到 VIM 来编辑我的 LaTeX 文件时,我注意到 VIM 只“看到”了 TeXLive2009,非常头疼!看这个截图,左边是VIM,右边是终端:
然后我检查了 $PATH VIM 正在使用的内容,事实证明,它使用的是不同的,不指向 TeXLive 2011。请参阅此屏幕截图:
维姆:
:! echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)
终端:
echo $PATH
/usr/local/texlive/2011/bin/x86_64-linux:/usr/local/texlive/2011/bin/x86_64-linux:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)
你知道如何解决这个问题,所以我的 LaTeX 插件可以使用 TeXLive 2011,也许通过让 VIM 使用相同的 $PATH?任何帮助将不胜感激!
看起来您已经更改了$PATH
其中一个 shell 配置文件中的变量,但您是从图标或桌面菜单项启动 VIM。您在 shell 配置文件中设置的内容(如~/.bashrc
或/etc/profile
)仅影响从 shell启动的应用程序。
通常有两种可能的方法来解决这个问题:
[编辑]
~/.profile
.[/编辑]
在本地解决方案是最安全的(因为它只会影响一个程序),但既然你已经通过安装一个软件包的两个并行版本搞砸系统,我不知道这是否会吓到你。无论如何,你可以做到这一点通过修改.desktop
您的桌面环境的VIM条目,并从类似更改相关的命令gnome-terminal -c vim
到PATH=(yourPathGoesHere) gnome-terminal -c vim
。
全球方法是修改PATH
变量下的文件/etc/env.d/
。创建一个/etc/env.d/99-my_path_mod
包含PATH=(yourPathGoesHere):$PATH
. 您需要重新启动才能使其生效(嗯,可以通过来回切换 init 级别来避免重新启动,但那样更容易。)
[编辑]
每个用户的解决方案可能是最好的,正如我现在看到的,可以称为“正确的方式”。正如 Gilles(如下)所指出的,该~/.profile
文件是应该为所有登录会话设置环境变量的地方。