我通过 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.el
从http://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