2012-03-24 12 views
11

Uso Vim normale con supporto rubino su Lion (installato da gist). Sto usando rubino con rbenv quindi il mio percorso si presenta come /users/me/.rbenv/shims: .....

Dall'interno vim il percorso è

:!echo $PATH 
> usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:.... 

anche io posso creare e modificare un variabile di ambiente:

:let $PATH = "/bar:/foo" 
:!echo $PATH 
> /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/foo:/bar 

percorsi che iniziano con/usr/bin.

Quindi, come posso accedere al mio Ruby 1.9.3 in ~/.rbenv/shims invece del sistema ruby ​​in/usr/bin?

risposta

4

ho did'n t impostare l'opzione shell in Vimrc, in modo che si è automaticamente impostato su /bin/zsh.

Poi ho scoperto che ho un'inizializzazione in dublicate di rbenv: nel mio .zshrc. Ho rimosso la fine dell'inizializzazione $ PATH extensioin in .zshrc perché era già gestita dal plugin rbenv oh-my-zsh.

Anche dopo che la pulizia, il mangeling $ PATH ancora accadendo in modo :!echo $PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11 /bin:/Users/fb/.rbenv/shims:/Users/fb/.rbenv/bin:/Users/fb/bin:/usr/local/sbin:/usr/games

Impostazione :set shell=/bin/bash era cosa mi ha aiutato, come posso vivere con bash nel mio vim: :!echo $PATH

/Users/fb/.rbenv/shims:/Users/fb/.rbenv/bin:/Users/fb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/ bin:/sbin:/bin:/usr/games:/Users/fb/Dropbox/local/bash

2

Nel vostro ~/.bashrc (o qualunque shell che si sta usando) file, aggiungere la seguente riga: (! O .zshrc o qualunque shell che si sta usando)

PATH=/home/me/.rbenv/shims:${PATH} 

e quindi eseguire source ~/.bashrc

+0

Se lo metti in '~/.bash_profile' non dovrai eseguire il comando source (eseguirà automaticamente quel comando ogni volta che avvii una nuova shell) – Jwosty

+0

Vero - non ci pensare. Sebbene tu abbia solo bisogno di eseguire il comando source una volta per ogni shell che avevi aperto quando hai modificato ~/.bashrc. Nella mia testa stavo traducendo da zsh a bash - volevo solo dirgli di metterlo nel suo ~/.zshrc :) –

+0

Grazie per aver risposto. Io uso zsh e non ho .bashrc né .bash_profile. Per il test li ho creati, ma non aiuta. Io uso zsh e il mio percorso è impostato correttamente sia in Terminal che in Iterm2. – fbehrens

0

sì su OS X è la bash_profile che viene provenienza quando si apre una nuova finestra di console, mentre su Linux è il tuo bashrc

5

rvm ha anche questo problema. Se zsh è la shell predefinita all'avvio, viene eseguito /etc/zshenv.

Questo esegue /usr/libexec/path_helper. Questo imposta il percorso in base ai contenuti /etc/paths e /etc/paths.d/.

Il faq for rvm menziona lo spostamento di /etc/zshenv a /zsh/zshrc. Ho fatto questo e rimosso il /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin dall'inizio del mio percorso in macvim.

+0

Ho modificato '/ etc/paths' e questo ha funzionato per me. ** Grazie! ** Questo è bello sapere. – duma

1

Questo può essere risolto semplicemente aggiungendo

PATH=/home/me/.rbenv/shims:${PATH} 

a

/etc/zshenv 
30

Questo è a known problem introduced by Apple in OS X 10.5 Leopard.

Se si utilizza Bash o Zsh e si utilizzano shell non interattive, si è interessati.

L'esecuzione di sudo chmod ugo-x /usr/libexec/path_helper ti risolverà, ma dovresti dare un'occhiata all'articolo per capire perché.

+1

Grazie , il mio vim ora non è confuso – attomos

+3

Questa soluzione funziona perfettamente, ma ho trovato il suggerimento fornito da tpope's [vim-rbenv] (https: // gith ub.com/tpope/vim-rbenv#faq) per essere migliore perché consente comunque l'esecuzione di 'path_helper' su shell interattive. Semplicemente 'sudo mv/etc/zshenv/etc/zshrc' e vim dice Yay! – Tiago

+1

ha aiutato! Grazie! –

0

Non uso mac o zsh (sono su linux), tuttavia ho riscontrato questo problema quando eseguivo gvim dal menu MATE.

ho risolto con l'aggiunta di questo al mio Vimrc:

if $PATH !~ "\.rbenv" 
    let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH 
endif 

questo modo si evita l'impostazione, se si esegue vim da un terminale, altrimenti i percorsi rbenv sarebbe incluso due volte.

Ho provato a impostare l'applicazione per l'esecuzione tramite un terminale, ma ciò non ha aiutato.