(G) VIM utilise un $ PATH différent de mon système

8

Comme Ubuntu ne fournit aucun package à jour pour TeXLive, je l'ai installé manuellement. Cependant, certains programmes ont besoin de TeXLive comme dépendance. J'ai donc installé le package TeXLive à partir des référentiels Ubuntu en plus de cela, qui est la version 2009. J'ai ensuite changé mon $ PATH pour contenir la version 2011 installée manuellement, donc les programmes pointent toujours vers et utilisent la version la plus récente de TeXLive. Jusqu'à présent, cela a bien fonctionné.

Mais voici le cliché: lorsque je suis passé à VIM pour éditer mes fichiers LaTeX, j'ai remarqué après trop de maux de tête que VIM "ne voit" que TeXLive2009! Voir cette capture d'écran, à gauche est VIM, à droite un terminal:

Version LaTeX dans VIM

J'ai ensuite vérifié ce que $ PATH VIM utilise, et il s'avère qu'il en utilise un autre, qui ne pointe PAS vers TeXLive 2011. Voir cette capture d'écran:

Chemin dans VIM et Terminal

VIGUEUR:

:! 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

Avez-vous une idée de comment résoudre ce problème, afin que mes plugins LaTeX puissent utiliser TeXLive 2011, peut-être en faisant utiliser à VIM le même $ PATH? Toute aide serait grandement appréciée!

Ingo
la source
4
Où avez-vous changé votre CHEMIN?
enzotib

Réponses:

5

Il semble que vous ayez modifié la $PATHvariable dans l'un de vos fichiers de configuration de shell, mais vous démarrez VIM à partir d'une icône ou d'une entrée de menu du bureau. Les choses que vous définissez dans les fichiers de configuration du shell (comme ~/.bashrcou /etc/profile) n'affectent que les applications démarrées à partir du shell .

Il existe généralement deux trois approches possibles à ce problème:

  • local : modifiez le mode de démarrage de VIM.

[Éditer]

  • par utilisateur : modifiez l'environnement de votre utilisateur dans ~/.profile.

[/Éditer]

  • global : modifiez l'environnement global.

La solution locale est la plus sûre (car elle n'affecte qu'un seul programme), mais comme vous avez déjà foiré le système en installant deux versions simultanées d'un progiciel, je ne sais pas si cela vous fera peur. Quoi qu'il en soit, vous pouvez le faire en modifiant l' .desktopentrée pour VIM dans votre environnement de bureau et changer la commande associée de quelque chose comme gnome-terminal -c vimen PATH=(yourPathGoesHere) gnome-terminal -c vim.

La méthode globale consiste à modifier la PATHvariable dans un fichier sous /etc/env.d/. Il devrait suffire de créer un fichier /etc/env.d/99-my_path_mod, contenant PATH=(yourPathGoesHere):$PATH. Vous devrez redémarrer pour que cela prenne effet (Eh bien, le redémarrage pourrait être évité en changeant le niveau d'initialisation d'avant en arrière, mais c'est beaucoup plus facile de cette façon.)

[Éditer]

La solution par utilisateur peut être la meilleure et, comme je le vois maintenant, peut être appelée "la bonne façon". Comme l'a souligné Gilles (ci-dessous), le ~/.profilefichier est l'endroit où les variables d'environnement pour toutes vos sessions de connexion doivent être définies.

rozcietrzewiacz
la source
Merci, suite à votre solution, le plus simple est probablement d'appeler gvim depuis un terminal. Ça marche bien!
Ingo
Cette réponse est trompeuse et partiellement incorrecte. Il n'est pas nécessaire de changer quoi que ce soit au niveau du système; à la place, @Ingo, la solution simple consiste à définir des variables d'environnement dans~/.profile et jamais dans ~/.bashrc. Faire les choses correctement n'est pas difficile et évitera de futurs problèmes .
Gilles 'SO- arrête d'être méchant'
@Gilles J'avoue ne pas avoir réalisé le rôle principal de ~/.profile, donc ma réponse peut être trompeuse. Mais dans quelle partie est-ce incorrect?
rozcietrzewiacz
Ok, techniquement, je pense que la seule chose incorrecte est «généralement deux approches possibles»: il y a une troisième approche qui est commune et préférable. La présentation /etc/profilesous forme de fichier de configuration shell est techniquement vraie mais trompeuse (c'est un fichier de configuration écrit en shell, pas un fichier de configuration du shell). Ne pas mentionner ~/.profileest une omission majeure, ce qui à lui seul rend votre réponse «non utile».
Gilles 'SO- arrête d'être méchant'
Lorsque j'ouvre mon /etc/profile, c'est ce que je vois tout en haut . Donc, au moins sur mon système (Gentoo), le fichier peut être appelé "fichier de configuration du shell".
rozcietrzewiacz
2

Où avez-vous changé votre utilisateur PATH? Normalement, je définirais cela dans ~/.profile, où il devrait être récupéré par votre gestionnaire de session X (c'est-à-dire lors de la prochaine connexion X) et s'appliquer également à toutes les applications de votre session X (comme votre panneau / bureau à partir duquel vous démarrez gvim) .

patrikf
la source