(G) VIM verwendet einen anderen $ PATH als mein System

8

Da Ubuntu keine aktuellen Pakete für TeXLive bereitstellt, habe ich es manuell installiert. Einige Programme benötigen jedoch TeXLive als Abhängigkeit. Also habe ich das TeXLive-Paket aus den Ubuntu-Repositorys installiert, zusätzlich zu der Version 2009. Ich habe dann meinen $ PATH so geändert, dass er die manuell installierte Version 2011 enthält, sodass Programme immer auf die neueste TeXLive-Version verweisen und diese verwenden. Bisher hat das gut funktioniert.

Aber hier ist der Schnappschuss: Als ich zum Bearbeiten meiner LaTeX-Dateien zu VIM wechselte, bemerkte ich nach zu großen Kopfschmerzen, dass VIM nur TeXLive2009 "sieht"! Siehe diesen Screenshot, links ist VIM, rechts ein Terminal:

LaTeX-Version in VIM

Ich habe dann überprüft, was $ PATH VIM verwendet, und wie sich herausstellt, wird ein anderes verwendet, das NICHT auf TeXLive 2011 verweist. Siehe diesen Screenshot:

Pfad in VIM und Terminal

VIM:

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

Terminal:

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

Haben Sie eine Idee, wie Sie dies beheben können, damit meine LaTeX-Plugins TeXLive 2011 verwenden können, indem Sie VIM möglicherweise dazu bringen, denselben $ PATH zu verwenden? Jede Hilfe wäre sehr dankbar!

Ingo
quelle
4
Wo hast du deinen PFAD geändert?
Enzotib

Antworten:

5

Es sieht so aus, als hätten Sie die $PATHVariable in einer Ihrer Shell-Konfigurationsdateien geändert , aber Sie starten VIM über ein Symbol oder einen Desktop-Menüeintrag. Die Dinge, die Sie in Shell-Konfigurationsdateien (wie ~/.bashrcoder /etc/profile) festlegen, wirken sich nur auf die Anwendungen aus, die von der Shell gestartet wurden .

Es gibt im Allgemeinen zwei drei mögliche Ansätze für dieses Problem:

  • lokal : Ändern Sie die Art und Weise, wie VIM gestartet wird.

[bearbeiten]

  • pro Benutzer : Ändern Sie die Umgebung Ihres Benutzers in ~/.profile.

[/bearbeiten]

  • global : Ändern Sie die globale Umgebung.

Die lokale Lösung ist die sicherste (da sie nur ein Programm betrifft). Da Sie das System jedoch bereits durch die Installation von zwei gleichzeitigen Versionen eines Softwarepakets durcheinander gebracht haben, bin ich mir nicht sicher, ob Sie dies erschrecken wird. Wie auch immer, können Sie das tun , indem Sie den modifizierenden .desktopEintrag für VIM in Ihrer Desktop - Umgebung und den dazugehörigen Befehl von etwas ändern wie gnome-terminal -c vimzu PATH=(yourPathGoesHere) gnome-terminal -c vim.

Die globale Methode besteht darin, die PATHVariable in einer Datei unter zu ändern /etc/env.d/. Es sollte ausreichen, eine Datei zu erstellen /etc/env.d/99-my_path_mod, die enthält PATH=(yourPathGoesHere):$PATH. Sie müssen neu starten, damit dies wirksam wird. (Nun, ein Neustart könnte vermieden werden, indem die Init-Ebene hin und her gewechselt wird, aber auf diese Weise ist dies weitaus einfacher.)

[bearbeiten]

Die Lösung pro Benutzer ist möglicherweise die beste und kann, wie ich jetzt sehe, als "der richtige Weg" bezeichnet werden. Wie von Gilles (unten) hervorgehoben, sollten in der ~/.profileDatei Umgebungsvariablen für alle Ihre Anmeldesitzungen festgelegt werden.

rozcietrzewiacz
quelle
Vielen Dank, nach Ihrer Lösung ist es wahrscheinlich am einfachsten, gvim einfach von einem Terminal aus anzurufen. Das funktioniert gut!
Ingo
Diese Antwort ist irreführend und teilweise falsch. Auf Systemebene müssen keine Änderungen vorgenommen werden. Stattdessen besteht @Ingo die einfache Lösung darin , Umgebungsvariablen in~/.profile und niemals in zu setzen ~/.bashrc. Das Richtige zu tun ist nicht schwierig und verhindert zukünftige Probleme .
Gilles 'SO - hör auf böse zu sein'
@ Gilles Ich gebe zu, ich habe die Hauptrolle von nicht erkannt ~/.profile, daher kann meine Antwort irreführend sein. Aber in welchem ​​Teil ist es falsch?
Rozcietrzewiacz
Ok, technisch gesehen denke ich, dass das einzig Falsche „im Allgemeinen zwei mögliche Ansätze“ sind: Es gibt einen dritten Ansatz, der üblich und vorzuziehen ist. Die Darstellung /etc/profileals Shell-Konfigurationsdatei ist technisch gesehen richtig, aber irreführend (es handelt sich um eine in der Shell geschriebene Konfigurationsdatei, nicht um eine Konfigurationsdatei der Shell). Nicht zu erwähnen ~/.profileist eine große Auslassung, die allein Ihre Antwort „nicht nützlich“ macht.
Gilles 'SO - hör auf böse zu sein'
Wenn ich meine öffne /etc/profile, sehe ich das ganz oben . Also, zumindest auf meinem System (Gentoo), die Datei kann „config - Datei des Shell“ genannt werden.
Rozcietrzewiacz
2

Wo haben Sie die Ihres Benutzers geändert PATH? Normalerweise würde ich das so einstellen, dass ~/.profilees von Ihrem X-Sitzungsmanager (dh beim nächsten X-Login) abgeholt wird und auch für alle Anwendungen in Ihrer X-Sitzung gilt (z. B. Ihr Panel / Desktop, von dem aus Sie gvim starten). .

patrikf
quelle