Как правильно использовать 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?
Ответы
Ответ 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 будут включены дважды.
Я попробовал настроить приложение для запуска через терминал, но это не помогло.