Emacs обновляет режим ruby ​​major - PullRequest
1 голос
/ 13 июля 2011

Я использую emacs 23.1, с включенным основным режимом для ruby. Эта ошибка подсветки синтаксиса регулярных выражений сводит меня с ума: http://redmine.ruby -lang.org / вопросы / показать / 4242

Как отмечалось, ошибка была исправлена ​​в более новой версии ruby-mode.el
Я хотел бы обновить эту новую версию ruby-mode.el. Какой лучший способ сделать это?

Что я пробовал:
1. Я установил ruby ​​1.9.2-p180
2. Я подтвердил, что /ruby-1.9.2-p180/misc/ruby-mode.el был исправленной версией
3. Я скопировал его в .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?

EDIT: Хорошо, оказалось, что он правильно читает новый ruby-mode.el - я переименовал ruby-mode.elc в ruby-mode.elc2, чтобы убедиться, что это так.

Возможно, это новый крайний случай, я скоро отправлю отчет об ошибке.
Вот тестовый пример для любого любопытного

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

Похоже, что он корректно работает с (), окружающим аргумент метода, так что это будет мое исправление:)

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Попробуйте добавить явный путь к автозагрузке:

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

Кстати, если вы хотите узнать, в какой файл загружена библиотека emacs, используйте M-x locate-library.

1 голос
/ 13 июля 2011

Попробуйте скопировать 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.

...