2012-04-26 33 views
7

我有通過ELPA安裝的Ruby電子模式。Emacs Ruby電子不插入結尾

我曾參觀過一個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

UPDATE

我通過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)) 

因此,它看起來像我可能有一個不好的文件,將嘗試另一個。

UPDATE

我以前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

+0

注意電動模式通常是直接在空格或特殊字符,如工作({」關於'RET'。所以'class' +空間etc..not是電動的。 – Casper 2012-04-26 02:34:07

+0

有趣的是,我得到一個'符號的功能定義無效:紅寶石鑲嵌end'當我以後高清或 – tojofo 2012-04-26 04:02:55

回答

4

確保它在您的emacs狀態欄中顯示REl

我下載紅寶石電從這裏:
http://shylock.uw.hu/Emacs/ruby-electric.el

我然後加載庫到Emacs,走進一個Ruby文件,並激活 紅寶石電伴:

M-x ruby-electric-mode 

當我鍵入class和命中空間自動填充end(運行emacs 23)。也許你想試試ruby-electric.el的這個版本,如果你不能從ELPA那裏工作。

+0

類打的空間,我結束了使用'紅寶石electric.el'掛在這裏,http://appsintheopen.com/articles/1-setting-up-emacs - 用於護欄開發/零件/ 7-的Emacs紅寶石富 – tojofo 2012-04-26 05:09:00

+0

我接受這個答案,因爲使用除ELPA版本以外的東西爲我工作 – tojofo 2012-04-26 05:18:52

0

您需要包括「紅寶石額外的」使用「紅寶石電」:

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

應該在emacs的某一天進行合併。

+0

我切換到使用前奏曲與鴻寶電在那裏已經工作過罰款我從第一天開始。 – tojofo 2014-11-29 04:30:01

+0

酷。另外,請查閱https://github.com/rejeep/ruby-tools.el更多的紅寶石模式糖衣= d – nofxx 2014-11-29 07:22:52