2013-04-06 2 views
3

Вот моя текущая настройка:Как я могу использовать правильную версию Ruby Ruby с командной оболочкой Emacs?

  • MacBook с Mountain Lion
  • Emacs является http://emacsformacosx.com/
  • rbenv с глобальными 1.9.3-P374
  • Войти оболочки ЗШ

Мои ~ /.zprofile (я уверен, что файл будет выполнен):

# Customize to your needs... 
export PATH=/Users/username/.rbenv/shims:/Users/username/.nvm/v0.9.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin 

eval "$(rbenv init -)" 

Я хочу использовать мою глобальную версию рубина с M-x shell-command (или M-!). Я ожидаю, что M-! ruby -v вернется ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.3.0], но я получаю ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0].

Если я запустил ruby -v в M-x shell, загрузили нужную версию. Я подозреваю, что M-! не работает должным образом, поскольку он работает как неинтерактивная оболочка.

Есть ли способ исправить это, помимо запуска чего-то вроде: M-! eval "$(rbenv init -)" && ruby -v? Это работает, но я не хочу вставлять eval "$(rbenv init -)" && infront всего, что я выполняю.

ответ

2

Ваш путь от оболочки должен быть замечен Emacs, и чтобы это стало проще, используйте следующий пакет elisp.

https://github.com/purcell/exec-path-from-shell

Вы можете установить это через эль-получить или вручную, сбросив его в ~/.emacs.d/lisp каталоге и добавить это к вашему ~/.emacs или ~/.emacs.d/init.el файл.

(add-to-list 'load-path "~/.emacs.d/lisp") 
(unless (require 'exec-path-from-shell nil 'noerror) 
    (exec-path-from-shell-initialize)) 

Lisp file позаботится обо всем остальном.

 Смежные вопросы

  • Нет связанных вопросов^_^