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


8

因为Ubuntu没有提供TeXLive的最新软件包,所以我手动安装了它。但是,某些程序需要TeXLive作为依赖项。因此,我要做的是从2009版本安装了Ubuntu存储库中的TeXLive软件包。然后,我将$ PATH更改为包含手动安装的2011版本,因此程序仍然始终指向并使用最新的TeXLive版本。到目前为止,一切正常。

但这很简单:当我切换到VIM来编辑LaTeX文件时,我感到头疼的是,VIM只看到TeXLive2009!看到此屏幕截图,左为VIM,右为终端:

VIM中的LaTeX版本

然后,我检查了$ PATH VIM使用的是什么,事实证明,它使用的是另一种,没有指向TeXLive2011。请参见此屏幕截图:

VIM和终端中的路径

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?任何帮助将不胜感激!


4
您在哪里更改了PATH?
enzotib

Answers:


5

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

通常有两种三种方法可以解决此问题:

  • local:更改VIM的启动方式。

[编辑]

  • 每用户:在中修改用户的环境~/.profile

[/编辑]

  • global:修改全局环境。

本地解决方案是最安全的(因为它只会影响一个程序),但既然你已经通过安装一个软件包的两个并行版本搞砸系统,我不知道这是否会吓到你。无论如何,您可以通过.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文件中应设置所有登录会话的环境变量。


谢谢,遵循您的解决方案,最简单的方法可能就是从终端调用gvim。很好!
Ingo

这个答案是误导性的,部分是错误的。无需在系统级别进行任何更改;取而代之的是@Ingo,简单的解决方案是在中设置环境变量,~/.profile而在中设置环境变量~/.bashrc。正确地做事并不困难,并且可以防止将来出现问题
吉尔(Gilles)'所以

我承认@Gilles并未意识到的主要作用~/.profile,因此我的回答可能会误导他人。但是哪一部分不正确?
rozcietrzewiacz 2011年

好的,从技术上讲,我认为唯一不正确的事情是“通常有两种可能的方法”:第三种方法是常见且可取的。从/etc/profile技术上讲,以外壳程序配置文件的形式显示确实是正确的,但却具有误导性(这是用外壳程序编写的配置文件,而不是外壳程序的配置文件)。不提~/.profile是一个重大遗漏,仅此一项就使您的回答“无用”。
吉尔(Gilles)'所以

当我打开书架时/etc/profile这就是我在最上面看到的。因此,至少在我的系统(Gentoo)上,该文件可以称为“ shell的配置文件”。
rozcietrzewiacz 2011年

2

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.