我通过ELPA安装了Ruby Electric模式。
我访问过ruby文件~/test.rb
C-h m
显示红宝石电动模式已启用,字体锁定,请参阅
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))
所以看起来我可能有一个糟糕的文件,会尝试另一个。
更新
我使用从http://svn.ruby-lang.org/repos/ruby/tags/v1_9_2_0/misc/ruby-electric.el
下载的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
答案 0 :(得分:4)
确保在您的emacs状态栏中显示REl
。
我从这里下载了ruby-electric:
http://shylock.uw.hu/Emacs/ruby-electric.el
然后我将库加载到emacs中,然后进入ruby文件并激活 ruby electric with:
M-x ruby-electric-mode
当我输入class
并点击空格时,它会自动填充end
(运行emacs 23)。如果你不能从ELPA那里得到那个版本的ruby-electric.el
,你可能想试试那个版本的{{1}}。
答案 1 :(得分:0)
你需要加入'ruby-additional'才能使用'ruby-electric':
https://github.com/ruby/ruby/blob/trunk/misc/ruby-additional.el
有一天应该在emacs中合并。