8

我通过 ELPA 安装了 Ruby Electric 模式。

我访问了一个 ruby​​ 文件~/test.rb

C-h m显示 ruby​​ 电动模式已启用,字体锁定也已启用,请参见下面的输出

Enabled minor modes: Auto-Compression Auto-Encryption Blink-Cursor Column-Number 
Delete-Selection File-Name-Shadow Global-Font-Lock Global-Linum Iswitchb Line-Number 
Menu-Bar Mouse-Wheel Shell-Dirtrack Tooltip Transient-Mark

但是,当我输入代码时;

class Test
  def foo()

我没有end在击球时自动插入RET

更新

package-list按照我找到的页面上的建议安装了,我认为该页面属于作者。查看来源,~/emacs.d/elpa/ruby-electric-1.1/ruby-electric.el我看到以下内容;

;; FIXME: it should be available in next versions of ruby-mode.el
(defun ruby-insert-end ()
  (interactive)
  (insert "end")
  (ruby-indent-line t)
  (end-of-line))

所以看起来我可能有一个坏文件,将尝试另一个。

更新

我使用ruby-electric.elhttp://svn.ruby-lang.org/repos/ruby/tags/v1_9_2_0/misc/ruby-electric.el下载

从这篇文章链接到http://appsintheopen.com/articles/1-setting-up-emacs-for-rails-development/part/7-emacs-ruby-foo

然后把这个要点https://gist.github.com/1213051添加到ruby-electric.el

(defun ruby-insert-end () 
  "Insert \"end\" at point and reindent current line." 
  (interactive) 
  (insert "end") 
  (ruby-indent-line t) 
  (end-of-line))

而这个钩子进入我的.emacs,它似乎也可以在没有钩子的情况下工作

(add-hook 'ruby-mode-hook
      (lambda ()
        (require 'ruby-electric)
        (ruby-electric-mode t)))

正如这个谷歌组线程中所讨论的;https://groups.google.com/forum/?fromgroups#!msg/emacs-on-rails/Cuh_x5eCK_M/KDwjY4K6X1YJ

4

2 回答 2

5

确保它REl在您的 emacs 状态栏中显示。

我从这里下载了 ruby​​-electric:http:
//shylock.uw.hu/Emacs/ruby-electric.el

然后我将库加载到 emacs 中,并进入一个 ruby​​ 文件并使用以下命令激活 ruby​​ Electric:

M-x ruby-electric-mode

当我键入class并点击空格时,它会自动填充end(运行 emacs 23)。ruby-electric.el如果您无法从 ELPA 获得该版本,也许您想尝试该版本。

于 2012-04-26T02:28:20.477 回答
1

您需要包含“ruby-additional”才能使用“ruby-electric”:

https://github.com/ruby/ruby/blob/trunk/misc/ruby-additional.el

有一天应该合并到emacs中。

于 2014-11-28T12:20:46.090 回答