Emacs更新ruby主模式

时间:2011-07-13 04:38:22

标签: ruby emacs elisp

我正在使用emacs 23.1,包含ruby的主要模式。 这个正则表达式语法突出显示错误让我发疯: http://redmine.ruby-lang.org/issues/show/4242

如上所述,该错误已在较新版本的ruby-mode.el中修复 我想更新到这个较新版本的ruby-mode.el。这样做的最佳方法是什么?

我尝试了什么:
1.我安装了ruby 1.9.2-p180
2.我验证了/ruby-1.9.2-p180/misc/ruby-mode.el是固定版本
我把它复制到了.emacs.d
4.在我的.emacs文件中,我添加了:

(autoload 'ruby-mode "ruby-mode" "Ruby Mode." t)
(add-to-list 'auto-mode-alist '("\\.rb$" . ruby-mode))

然而,错误并未修复:(

感谢任何帮助,谢谢。另外,如果有人知道,这是在emacs 23.2或23.3中修复的吗?

编辑: 好的,事实证明它正确地读取了新的ruby-mode.el - 我将ruby-mode.elc重命名为ruby-mode.elc2以确保是这种情况。

也许这是一个新的边缘案例,我将很快提交一份错误报告 这是任何好奇的测试用例

method /^"([^"]*)"$/ do |arg|

它似乎与围绕方法参数的()正确地工作,所以这将是我现在的修复:)

2 个答案:

答案 0 :(得分:2)

尝试将显式路径添加到自动加载:

(autoload 'ruby-mode "~/.emacs.d/ruby-mode" "Ruby Mode." t)

顺便说一句,如果您想知道加载emacs库的文件,请使用M-x locate-library

答案 1 :(得分:1)

尝试将ruby-mode.el复制到~/.emacs.d/load/而不是~/.emacs.d/。这解决了我的问题。

我认为emacs可能会在~/.emacs.d/load/中查找,如果找不到该文件,它会在其他地方查找。在我的系统上,Ubuntu 10.04,我认为它是在/usr/share/emacs/23.1/lisp/progmodes/ruby-mode.elc中找到的。