(G) VIM usa un $ PATH diverso dal mio sistema


8

Poiché Ubuntu non fornisce pacchetti aggiornati per TeXLive, l'ho installato manualmente. Tuttavia, alcuni programmi richiedono TeXLive come dipendenza. Quindi quello che ho fatto è stato installare il pacchetto TeXLive dai repository Ubuntu, che è la versione 2009. Ho quindi cambiato il mio $ PATH per contenere la versione 2011 installata manualmente, quindi i programmi puntano e utilizzano sempre la versione TeXLive più recente. Finora ha funzionato bene.

Ma ecco lo schiocco: quando sono passato a VIM per modificare i miei file LaTeX, ho notato dopo un sacco di mal di testa che VIM "vede" solo TeXLive2009! Vedi questo screenshot, a sinistra è VIM, a destra un terminale:

Versione LaTeX in VIM

Ho quindi verificato ciò che $ PATH VIM sta usando e, a quanto pare, ne sta usando uno diverso, che NON punta a TeXLive 2011. Vedi questo screenshot:

Percorso in VIM e Terminal

VIM:

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

Terminale:

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

Hai idea di come risolvere questo problema, in modo che i miei plugin LaTeX possano usare TeXLive 2011, magari facendo in modo che VIM usi lo stesso $ PATH? Qualsiasi aiuto sarebbe molto apprezzato!


4
Dove hai cambiato il tuo PERCORSO?
enzotib,

Risposte:


5

Sembra che tu abbia modificato la $PATHvariabile in uno dei file di configurazione della shell, ma avvii VIM da un'icona o da una voce di menu del desktop. Le cose impostate nei file di configurazione della shell (come ~/.bashrco /etc/profile) influenzano solo le applicazioni avviate dalla shell .

Esistono in genere due tre possibili approcci a questo problema:

  • local : modifica la modalità di avvio di VIM.

[modificare]

  • per utente : modifica l'ambiente dell'utente in ~/.profile.

[/modificare]

  • globale : modifica l'ambiente globale.

La soluzione locale è la più sicura (poiché riguarda solo un programma), ma poiché hai già incasinato il sistema installando due versioni simultanee di un pacchetto software, non sono sicuro che questo ti spaventerà. Ad ogni modo, puoi farlo modificando la .desktopvoce per VIM nel tuo ambiente desktop e cambiando il comando associato da qualcosa di simile gnome-terminal -c vima PATH=(yourPathGoesHere) gnome-terminal -c vim.

Il metodo globale è modificare la PATHvariabile in un file in /etc/env.d/. Dovrebbe essere sufficiente creare un file /etc/env.d/99-my_path_modcontenente PATH=(yourPathGoesHere):$PATH. Avrai bisogno di riavviare affinché questo abbia effetto (Bene, il riavvio potrebbe essere evitato cambiando il livello di init avanti e indietro, ma è molto più facile in questo modo.)

[modificare]

La soluzione per utente potrebbe essere la migliore e, come la vedo ora, può essere definita "la strada giusta". Come sottolineato da Gilles (sotto), il ~/.profilefile è dove dovrebbero essere impostate le variabili di ambiente per tutte le sessioni di accesso.


Grazie, seguire la tua soluzione probabilmente è più semplice chiamare gvim da un terminale. Funziona benissimo!
Ingo,

Questa risposta è fuorviante e parzialmente errata. Non è necessario modificare nulla a livello di sistema; invece, @Ingo, la soluzione semplice è quella di impostare le variabili di ambiente in~/.profile e mai in ~/.bashrc. Fare le cose correttamente non è difficile e previene i problemi futuri .
Gilles 'SO- smetti di essere malvagio' il

@Gilles Ammetto di non essermi reso conto del ruolo principale di ~/.profile, quindi la mia risposta può essere fuorviante. Ma da che parte è errato?
rozcietrzewiacz,

Ok, tecnicamente penso che l'unica cosa errata sia "generalmente due possibili approcci": c'è un terzo approccio che è comune e preferibile. Presentarsi /etc/profilecome file di configurazione della shell è tecnicamente vero ma fuorviante (è un file di configurazione scritto nella shell, non un file di configurazione della shell). Non menzionare ~/.profileè una grande omissione, che da sola rende la tua risposta "non utile".
Gilles 'SO- smetti di essere malvagio' il

Quando apro il mio /etc/profile, questo è quello che vedo in cima . Quindi, almeno sul mio sistema (Gentoo), il file può essere chiamato "file di configurazione della shell".
rozcietrzewiacz,

2

Dove hai cambiato il tuo utente PATH? Normalmente, lo ~/.profileinserisco, dove dovrebbe essere raccolto dal gestore della sessione X (ovvero al successivo accesso X) e si applica anche a tutte le applicazioni nella sessione X (come il pannello / desktop da cui si avvia gvim) .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.