从emacs缓冲区运行ruby

时间:2011-04-21 09:37:40

标签: ruby emacs

如何从缓冲区运行一段ruby代码,而不是实际将缓冲区保存在文件中?一个场景是 a)切换到临时缓冲区 b)M-x红宝石模式 c)键入ruby代码 d)“编译”缓冲区并将结果打印在另一个缓冲区中。我不想将缓冲区内容保存在文件中,然后“编译”该文件

更新1-9-2011 哪些是ruby-mode和inf-ruby的最新版本,我在哪里可以获得它们?我使用ubuntu natty版本的ruby模式和emacs 23.2的inf-ruby的elpa版本。在干净的emacs配置中,以下配置(请参阅下面的内容)失败并显示:

can't convert nil into String 
from (irb):1:in `eval' 
from (irb):1". 

配置只是以下内容,emacs.d中没有其他配置指令:

(require 'ruby-mode)
(load-file "Configs/.emacs.d/elpa/inf-ruby-2.1/inf-ruby.el")

(autoload 'inf-ruby "inf-ruby" "Run an inferior Ruby pathrocess" t)
(autoload 'inf-ruby-keys "inf-ruby" "" t)
(eval-after-load 'ruby-mode
  '(add-hook 'ruby-mode-hook 'inf-ruby-keys))

2 个答案:

答案 0 :(得分:17)

您可以使用inf-ruby.el执行此操作。

安装inf-ruby后,M-x inf-ruby会在后台启动一个新的ruby解释器,您可以使用ruby-send-*命令向其发送代码,例如ruby-send-region(绑定者)默认为C-c C-r)。要发送整个缓冲区,请使用C-x h选择全部,然后点击C-c C-r

更新,2011-09-02:最新版本的inf-ruby.el(2.1.1,ELPA中提供)是由'nonsequitur'on github维护的,快照包在Melpa中可用。

答案 1 :(得分:3)

您可以尝试的几个选项

1。 Rinari来自Github

声称是

旨在使Emacs成为顶级的Ruby和Rails开发 环境


2。 ruby-compilation.el 是你需要的。

here上有一个帖子我已经使用并发现有帮助。

克里斯