(G)VIM 使用与我的系统不同的 $PATH

(G)VIM 使用与我的系统不同的 $PATH

由于Ubuntu没有提供TeXLive的最新软件包,所以我手动安装了它。然而,有些程序需要 TeXLive 作为依赖项。所以我所做的就是从 Ubuntu 存储库安装 TeXLive 软件包,这是 2009 版本。然后,我更改了 $PATH 以包含手动安装的 2011 版本,因此程序仍然始终指向并使用最新的 TeXLive 版本。到目前为止,这工作得很好。

但问题是这样的:当我切换到 VIM 编辑 LaTeX 文件时,我非常头疼地注意到 VIM 只能“看到”TeXLive2009!看这个截图,左边是VIM,右边是终端:

VIM 中的 LaTeX 版本

然后我检查了 $PATH VIM 使用的是什么,结果发现,它使用的是另一个不同的路径,它不指向 TeXLive 2011。请参见此屏幕截图:

VIM 和终端中的路径

维姆:

:! echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

终端:

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

你知道如何解决这个问题,以便我的 LaTeX 插件可以使用 TeXLive 2011,也许可以让 VIM 使用相同的 $PATH?任何帮助将不胜感激!

答案1

看起来您已经更改了$PATHshell 配置文件之一中的变量,但您是从图标或桌面菜单条目启动 VIM 的。您在 shell 配置文件中设置的内容(例如~/.bashrc/etc/profile)仅影响启动的应用程序来自外壳

解决这个问题通常有两种三种可能的方法:

  • 当地的:更改VIM的启动方式。

[编辑]

  • 每个用户:修改您的用户环境~/.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.您需要重新启动才能生效(好吧,重新启动可以通过来回切换初始化级别可以避免这种情况,但这样要容易得多。)

[编辑]

每个用户的解决方案可能是最好的,正如我现在所看到的,可以称为“正确的方法”。正如 Gilles(如下)所指出的,该~/.profile文件是应设置所有登录会话的环境变量的位置。

答案2

您在哪里更改了用户的PATH?通常,我会在 中设置它~/.profile,它应该由您的 X 会话管理器拾取(即在下一次 X 登录时),并且也适用于您的 X 会话中的所有应用程序(例如您启动 gvim 的面板/桌面) 。

相关内容