Emacs на рельсах…
…или рельсы на Emacs’е. Речь пойдет о том, как использовать emacs для разработки веб-приложений в среде RubyOnRails.
Многие сравнивают Emacs с текстовыми редакторами, такими как vim и т.п. На форумах уже пролилось не мало крови по этому поводу, что лучше, что удобнее… Но все почему то забывают тот простой факт, что Emacs – это не текстовый редактор и даже не текстовый процессор… Emacs – это интерпретатор языка Lisp! И так уж получилось, что основная мощь данного языка именно в случае с Emacs направлена именно на редактирование текстов. Хотя помимо этого существует еще целый набор программ на Lisp, которые позволяют проигрывать музыку, осуществлять удаленный доступ и т.д. и т.п.
Для того, чтобы эффективно использовать Emacs в разработке приложений в среде RubyOnRails достаточно установить ряд пакетов и прописать их использование в конфигурации Emacs. Этим и займемся…
$yaourt -S emacs-rails-mode-git emacs-snippet-template-mode emacs-find-recursive emacs-ruby-mode
Только что в системе оказались все необходимые модули для работы Emacs в среде RubyOnRails. Осталось указать их использование. Для этого прописываем в файле ~/.emacs следующие строки:
(defun try-complete-abbrev (old) (if (expand-abbrev) t nil)) (setq hippie-expand-try-functions-list '(try-complete-abbrev try-complete-file-name try-expand-dabbrev)) (require 'rails)
Перезапускаем Emacs для того, чтобы он перечитал конфигурацию, или явно указываем ему это сделать. И можно начинать работать!
Как? Очень просто! В меню File появился новый пункт – Create Rails Project, выбрав который создаем новый проект Rails. Для этого достаточно будет только указать директорию, в которой будет размещен сам проект.
После чего откроется два буфера, в одном результат операции, то есть будет подробно указано, какие файлы и директории были созданы, а в другом откроется файл application_controler.rb, то есть файл, отвечающий за основу приложения.
Как видно из представленного скриншота, появляется целый набор пунктов меню, отвечающих за определенный круг задач. Тут и управление базой данных, и управление приложением и управление веб-сервером… Все необходимые операции, которые обычно выполняются в консоли, доступны непосредственно из самого Emacs.
Пользователи MacOS очень любят создавать Rails приложения в среде TexMate, обычный текстовый редактор, обладающий многими вкусностями, типа snippets… Так вот, в Emacs все это тоже есть, только в отличие от TextMate, тут все это предоставляется бесплатно!
Snippets… Как много в этом слове! Это сокращения, которые позволяют введя короткую аббревиатуру, развернуть ее в целую конструкцию, тем самым сокращая массу времени.
На скриншоте показана лишь малая часть доступных сокращений…
Опять же из самого Emacs’a запускаем веб-сервер, при этом есть возможность указывать параметры командной строки при запуске и есть возможность выбора типа веб-сервера, который будет использоваться для запуска нашего приложения.
Рассказывать можно еще много про Rails-mode в среде Emacs… Но я не буду настолько подробно на нем останавливаться. Хочется лишь сказать, что подобные возможности я пока больше нигде не встречал, исключая конечно коммерческую программу TextMate под операционную систему MacOS.
И познать все тонкости данного режима работы можно только попробовав его в работе.
Похожие записи:
Метки: emacs, rubyonrails



А я вот чего не понял, auto complete в ruby-mode работает или нет? И если да, то что он комплетит и как его запустить?
По сути я только начинаю копаться с руби… Поэтому особо не копал. Но судя по AutoCompete это прикручивается отдельно. И в данной статье я это не описывал. Как попробую – опишу…
Да, похоже autocomplete это лучший вариант. А пробовал nxhtml?
Нет, nxhtml не пробовал, пока нативный html-mode стоит… Редко что в хтмл пишу… а в руби-моде куча своих снипетов для этого дела есть.
nxhtml конечно слишком монстровый, но рекомендую на rhtml-mode глянуть
хмм… посмотрю, спасибо!!
Сам тоде решил осваивать emacs, как раз с ror. Вопрос, как там с поддержкой html.erb, (подсветка, автоформат), насколько сложно прикрутить haml?
статью бы переписать с учетом применения git://github.com/dima-exe/emacs-rails-reloaded.git
ЗЫ можно прикрутить, чтобы интеграция с apidoc выполнялась средствами стандатного emacs браузера?
html.erb очень хорошо поддерживается, тем более при использовании дополнительных режимов… статью пока переписывать не собираюсь, застопорилось у меня пока все с ror, разбираться нет времени, а пока не разберусь, писать не буду.