Подтвердить что ты не робот

Как правильно использовать ruby ​​в vim? Как изменить $PATH в VIM?

Я использую простой Vim с поддержкой Ruby на Lion (установлен gist). Я использую ruby ​​с rbenv, поэтому мой путь выглядит как /users/me/.rbenv/shims:.....

Внутри vim путь

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

Даже я могу создать и изменить переменную среды:

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

пути остаются с /usr/bin.

Итак, как я могу получить доступ к моему ruby ​​1.9.3 в ~/.rbenv/shims вместо системы ruby ​​в/usr/bin?

4b9b3361

Ответ 1

Я не установил параметр shell в .vimrc, так что он автоматически был установлен на /bin/zsh.

Затем я узнал, что я привык к дублированию инициализации rbenv: в моем .zshrc. Я удалил конец инициализации $PATH extensioin в .zshrc, потому что это уже было обработано плагином oh-my-zsh rbenv.

Даже после этой очистки мангаль $PATH все еще происходит так :!echo $PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:/Users/fb/.rbenv/бен:/Users/FB/бен:/USR/локальные/SBIN:/USR/игры

Настройка :set shell=/bin/bash помогла мне, так как я могу жить с bash в моем vim: :!echo $PATH

/Users/fb/.rbenv/shims:/Users/fb/.rbenv/bin:/Users/fb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/USR/бен:/SBIN:/бен:/USR/игры:/Users/FB/Dropbox/локальный/bash

Ответ 2

Это известная проблема, появившаяся Apple в OS X 10.5 Leopard.

Если вы используете Bash или Zsh и используете неинтерактивные оболочки, вы будете затронуты.

Запуск sudo chmod ugo-x /usr/libexec/path_helper исправит вас, но вы должны взглянуть на статью, чтобы понять, почему.

Ответ 3

rvm также имеет эту проблему. Если zsh является вашей оболочкой по умолчанию при запуске /etc/zshenv, выполняется выполнение.

Выполняется /usr/libexec/path_helper. Это устанавливает путь, основанный на содержимом /etc/paths и /etc/paths.d/.

faq для rvm упоминает перемещение /etc/zshenv в /zsh/zshrc. Я сделал это, и он удалил /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin с самого начала моего пути в macvim.

Ответ 4

В вашем ~/.bashrc(или любом другом используемом вами оболочке) файле добавьте следующую строку:

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

а затем запустите source ~/.bashrc (или .zshrc или любую другую оболочку, которую вы используете!)

Ответ 5

Это можно устранить, просто добавив

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

to

/etc/zshenv

Ответ 6

да, на OS X это bash_profile, который получает исходный код при открытии нового окна консоли, тогда как в Linux это ваш bashrc

Ответ 7

Я не использую mac или zsh (я на Linux), однако я столкнулся с этой проблемой, когда я запускал gvim из меню MATE.

Я решил это, добавив это в мой .vimrc:

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

Это позволяет избежать его установки, если вы запускаете vim из терминала, в противном случае пути rbenv будут включены дважды.

Я попробовал настроить приложение для запуска через терминал, но это не помогло.