Emacs на рельсах...

06 August 2009 #emacs #rails

…или рельсы на 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 после создания приложения

Как видно из представленного скриншота, появляется целый набор пунктов меню, отвечающих за определенный круг задач. Тут и управление базой данных, и управление приложением и управление веб-сервером… Все необходимые операции, которые обычно выполняются в консоли, доступны непосредственно из самого Emacs.

Пользователи MacOS очень любят создавать Rails приложения в среде TexMate, обычный текстовый редактор, обладающий многими вкусностями, типа snippets… Так вот, в Emacs все это тоже есть, только в отличие от TextMate, тут все это предоставляется бесплатно!

Snippets… Как много в этом слове! Это сокращения, которые позволяют введя короткую аббревиатуру, развернуть ее в целую конструкцию, тем самым сокращая массу времени.

Меню snippets, раскрывающее основные сокращения

На скриншоте показана лишь малая часть доступных сокращений…

Опять же из самого Emacs’a запускаем веб-сервер, при этом есть возможность указывать параметры командной строки при запуске и есть возможность выбора типа веб-сервера, который будет использоваться для запуска нашего приложения.

Рассказывать можно еще много про Rails-mode в среде Emacs… Но я не буду настолько подробно на нем останавливаться. Хочется лишь сказать, что подобные возможности я пока больше нигде не встречал, исключая конечно коммерческую программу TextMate под операционную систему MacOS.

И познать все тонкости данного режима работы можно только попробовав его в работе.