VIM как Rails IDE
Очень долго я разрабатываю приложение для веба. Сначала я работал на DreamWeaver, но его функционал был ужасен да еще за него нужно было платить. Немного помытарился я перешол на Netbeans. Прекрасное IDE, но есть один недостаток – кушать такие IDE память и процессор любят (логично – больше плагинов – больше проблем). Потом я перешол на Aptana. Великолепное IDE. Писать про него можно много. Хоть он тоже любит память и процессор (Eclipse все-таки), но не такой прожорливый как Netbeans. Я работаю на этом IDE по сей день, но в один прекрасный момент мне достался ноутбук с 1.5 одно ядерным процессором и 1 Гб памяти. Работать то можно, но для Aptana такой процессор не сильно нравится – уж часто её приходится «уходить в себя» (зависать на неопределенный интервал времени). И хоть работать возможно, я решил поработать в Vim. Сам по себе vim «голый» очень скуд в функционале. И поскольку мы разрабатываем львиную долю проектов на Rails и Ruby, мне нужно было улучшить работу. И к моей радости довольно-таки быстро наткнулся на набор скриптов от бразильца Akita on Rails. Он, как я понял, собрал кучу полезных плагинов вместе и чуть-чуть дописал конфиг. Всё, о чём будет говориться ниже верно не только для Ruby, но и для других языков типа C, PHP и прочее, готовые наборы сниппетов (о них далее) в комплекте есть и для них.

Основные фишки этого набора скриптов
- FuzzyFinderTexMate — очень удобный поиск файлов в проекте по ctrl+f. К примеру, чтобы найти файл config\routes.rb надо набрать rorb. Или даже и того меньше
- Набор сниппетов из TexMate и некоторое количество своих (в смысле, NERDSnippets). Очень удобно, набираешь vf + TAB — получаешь validates_format_of :<+attribute+>, :with => /<+regex+>/<+,
n => :<+create+>, :message => «<+is invalid+>»+>, где по TAB скачешь между параметрами, заключёнными в <+…+>. Сниппеты есть для всего, чего угодно, их полный список можно посмотреть в папке snippets в директории с файлами кофигурации VIM. - Дерево проекта, реализованное с помощью NERDTree. Доступно по \+p (обратный слеш и символ p). Переключение с дерева проекта в окно редактирования кода и обратно осуществляется по ctrl+w и стрелка (куда будет стрелка, туда курсор и перескочет), в самом же дереве o — открыть\закрыть папку\файл, R (shift+r) — обновить дерево и по вопросу(?) довольно внятная справка по горячим клавишам.
- Подсветка кода (rb, html, rjs, js, erb и т.п.)
- Возможности из rails.vim типа перехода по gf на файл модели, если курсор стоит на вызове, например, конструктора. Всяческие :Rake, :Rgenerate и т.п.
- Ну и все возможности и навороты VIM, за которые его так любят
Надеюсь, вы уже потираете руки, потому что vim — это очень быстрый, удобный, расширяемый и очень не требовательный к ресурсам компьютера редактор.
Добиться всего этого очень просто. Вышеупомянутый Akita собрал всё это в одном проекте на github.
Установка
Linux и Mac:
-
cd ~
-
git clone git://github.com/akitaonrails/vimfiles.git .vim
-
cd .vim
-
git submodule init
-
git submodule update
Если же у вас Windows, то в первую очередь надо установить Exuberant CTags и msysGit, после чего проделать следующее:
-
cd %HOME%
-
git clone git://github.com/akitaonrails/vimfiles.git
-
cd vimfiles
-
git submodule init
-
git submodule update
Далее, вы открываете ваш ~/.vimrc (на Windows %HOME%\_vimrc), и вставляете туда следующие строки:
-
source ~/.vim/vimrc "Собственно, подцепить все настройки от Akita
-
"В Windows вместо строчки выше надо вбить %HOME%\vimfiles\vimrc
-
colorscheme vibrantink "Приятная цветовая схема в стиле TexMate
-
set nu "Отображать номер астрок
-
set sw=2 "Заменяет TAB на 2 пробела
-
set sts=2 "Аналогично, но в случае автоотступа
-
let g:fuzzy_ignore = "gems/*"
Послесловие
Собственно, я очень доволен работой этих скриптов и VIM, и теперь на своём основном linux-ноутбуке пересел с Netbeans на VIM. Основные аргументы — удобство в работе (впрочем, оно сравнимо), скорость работы, отсутвие необходимости работать мышью (хотя VIM поддерживает мышь) и скорость загрузки (холодный старт Netbeans — секунд 30).
Не обошлось, конечно, и без небольших подводных камней. Чтобы работала вся эта красота нужен VIM собранный с поддержкой Ruby. Проверяется это легко:
-
vim –version | grep ruby
или, если нет grep, то просто vim –version и поискать +ruby (собран с поддержкой) или -ruby (собран без поддержки).
На всякий случай скажу, что в TexMate я никогда не работал
P.S. Еще отмечу очень удобный плагин для перехода между буферами (можно конечно использовать стандартные команды VIM, такие как ls, bn, bp, но можно и более удобным способом). Плагин Bufexplorer позволяет просмотреть список открытых буферов(файлов), отсортировать их, перейти к нужному и т.п.
P.S. P.S. пара скриншотов:


не гони на дримвивер!
)))
ты просто не умеешь его готовить
Ок. Как он работает с системами контроля версий и как там создать больше одного фтп на проект? А то я же не умею
Еще могу перечислить
http://help.adobe.com/ru_RU/Dreamweaver/10.0_Using/WS80FE60AC-15F8-45a2-842E-52D29F540FED.html
а больше одного фтп кажись низзя… ток зачем это? О_о типа деплоить сразу в несколько мест? я такого извращения нигде не встречал )) может в аптане твоей есть, а так, сколько редакторов перепробовал — нигде такого не видел
SVN ок, а как насчет GIT и Mercurial?
>>а больше одного фтп кажись низзя… ток зачем это? О_о типа деплоить сразу в несколько мест? я такого извращения нигде не встречал ))
Ура великому разработчику. Как минимум есть staging и production. Уже два.