Установка eruby-nxhtml-mumamo-mode каждый раз, когда я открываю файл .html.erb

Я скачал nxhtml и разархивировал его. Затем я поместил это в свой файл .emacs.

(add-to-list 'load-path "~/nxhtml/util")
    (require 'mumamo-fun)
    (setq mumamo-chunk-coloring 'submode-colored)
    (add-to-list 'auto-mode-alist '("\\.rhtml\\'" . eruby-nxhtml-mumamo-mode))
    (add-to-list 'auto-mode-alist '("\\.html\\.erb\\'" . eruby-nxhtml-mumamo-mode))

Когда я открываю файл .html.erb, у него не установлен правильный режим (и, следовательно, неправильная подсветка синтаксиса). Я знаю, что оператор require работает правильно, потому что я могу вручную установить для aquamacs режим eruby-nxhtml-mumamo-mode, и если я закомментирую строку require, я даже не смогу переключиться в этот режим. Я даже пытался заменить eruby...-mode другими режимами, такими как c++-mode и другие режимы, которые, как я знаю, работают, и это тоже не работает.

Итак, моя проблема с регулярным выражением? Я не уверена. Любая помощь будет оценена по достоинству.


person SteVwonder    schedule 05.04.2012    source источник
comment
Я не вижу ничего плохого в вашем коде, и экспериментально он работает для меня (с другим указанным режимом). Когда вы говорите, что не оказываетесь в правильном режиме, в каком режиме вы оказываетесь? Возможно, приоритет отдавался другому сопоставлению.   -  person phils    schedule 03.05.2012


Ответы (1)


Попробуйте следующее:

(add-to-list 'auto-mode-alist '("\\.rhtml?$" . eruby-nxhtml-mumamo-mode))
(add-to-list 'auto-mode-alist '("\\.html?\\.erb$" . eruby-nxhtml-mumamo-mode))

Похоже, у вас была экранированная запятая в конце ваших выражений.

Я не знаю, было ли отсутствие буквы «l» в вашем заголовке преднамеренным или нет, но вопросительный знак должен учитывать это в любом случае. Знак доллара привязывает выражение к концу строки и номинально является необязательным, но лучше быть явным.

person angelixd    schedule 27.04.2012
comment
При сопоставлении строки вместо буфера $ соответствует концу строки или перед символом новой строки. тогда как \' соответствует пустой строке, но только в конце буфера или строки, с которой сопоставляется. Другими словами, \' определенно соответствует концу строки, тогда как $ может и не соответствовать, если есть новая строка. Разница вряд ли когда-либо станет проблемой, когда дело доходит до имен файлов, но я бы все же предпочел использовать \'. - person phils; 03.05.2012