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

...или рельсы на Emacs'е. Речь пойдет о том, как использовать emacs для разработки веб-приложений в среде RubyOnRails.

Многие сравнивают Emacs с текстовыми редакторами, такими как vim и т.п. На форумах уже пролилось не мало крови по этому поводу, что лучше, что удобнее... Но все почему то забывают тот простой факт, что Emacs -- это не текстовый редактор и даже не текстовый процессор... Emacs -- это интерпретатор языка Lisp! И так уж получилось, что основная мощь данного языка именно в случае с Emacs направлена именно на редактирование текстов. Хотя помимо этого существует еще целый набор программ на Lisp, которые позволяют проигрывать музыку, осуществлять удаленный доступ и т.д. и т.п.

Для того, чтобы эффективно использовать Emacs в разработке приложений в среде RubyOnRails достаточно установить ряд пакетов и прописать их использование в конфигурации Emacs. Этим и займемся...

```bash
$ yaourt -S emacs-rails-mode-git emacs-snippet-template-mode  emacs-find-recursive  emacs-ruby-mode
```

Только что в системе оказались все необходимые модули для работы Emacs в среде RubyOnRails. Осталось указать их использование. Для этого прописываем в файле <em>~/.emacs</em> следующие строки:

```lisp
(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. Для этого достаточно будет только указать директорию, в которой будет размещен сам проект.

После чего откроется два буфера, в одном результат операции, то есть будет подробно указано, какие файлы и директории были созданы, а в другом откроется файл <em>application_controler.rb</em>, то есть файл, отвечающий за основу приложения.

<a href="https://static.juev.org/2009/08/emacs_ror.png"><img class="aligncenter size-medium wp-image-514" title="emacs_ror" src="https://static.juev.org/2009/08/emacs_ror-300x240.png" alt="Вид Emacs после создания приложения" width="300" height="240" /></a>

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

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

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

<a href="https://static.juev.org/2009/08/snippets.png"><img class="aligncenter size-medium wp-image-515" title="snippets" src="https://static.juev.org/2009/08/snippets-300x240.png" alt="Меню snippets, раскрывающее основные сокращения" width="300" height="240" /></a>

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

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

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

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

