Eclipse vs Vim
С большим удовольствием посмотрел скринкаст Eclipse: знакомство, плагины. Большое спасибо лектору Сергею Чикуеноку, а так же Студии, которая выложила эту вещь в открытый доступ.
Для веб разработки (perl, html, css, javascript, xml, xsl) я всегда иполььзую редактор Vim.
Vim мне очень нравится так:
- как он существует практически везде
- очень быстро работает в консоле на удаленной машине
- безумно удобен
- главное - он мне очень нравится
Во время просмотра видео про Eclipse, я записывал все фичи, которые мне нравились. Сделал я это, чтобы найти возможность делать то же самое и в виме.
Ниже следуюет список приятных фичек Eclipsa, а так же описание как достить того же в виме (не для всех вещей я знаю, как это сделать, я буду постепенно выискивать и дописывать сюда).
Special thanks goes to rafl, perl hacker, how helped me much with writing this post.
TODO’s
В Эклипсе есть очень удобная штука: в коде можно оставить специальный коммент (например TODO или FIXME), Эклипс в отдельном окне показывает список этих пометок, и можно очень просто перейти на этот файло на эту позицию.
Как реализовать в VIM: пока не ясно.
Форматирование
Эклипс умеет, с помощью специальной команды из неотформатированного текста делать очень и очень красивый код.
Перловый код в виме можно отформатировать с помощью perltidy:
:set equalprg=perltidy\ -pbp
Вводится команда выше, выделяется текст, который нужно отформатировать и нажимается на кнопку “=”.
Как в виме форматировать html/css/javascript/… пока не ясно.
Автодополнение
В эклипсе есть достаточно интеллектуальное авто дополнение. В виме есть автодополнение по ctrl+p и, вроде как, еще что-то (искать по слову “omni”). Вот ссылка на скрипт omniperl.
Документация
Например в JavaScript есть такая штука как JSDoc. С помощью нее в комментарии записывается описание кода. Так вот, Эклипс отображает документацию на функцию при написании названия функции (например). Очень удобно, так как в доке можно описать как она вызывается, что делает и что возвращает.
Как сделать в виме: пока не ясно.
Версионность файлов
Эклипс сохраняет промежуточные состояния файлов, т.е. можно в любой момет посмотреть, как выглядел файл месяц назад, а так же сравнить разные версии и перетащить изменения из предыдущих версий файла в текущую.
Существуют svn и другие системы контроля верий, но иногда удобно иметь историю изменений и в svn и локально.
Аналог в виме: неизвестно.
Полоска overview
У эклипса существует удобный элемент управление, который называется overview. Это необльшая полоска, которая находится справа от вертикальной полосы прокрутки кода. Она логически соответствует файлу который редактируется - на ней отображаются разые метки (например, все найденое при поиске, строки с ошибками, etc). При клике на меке, происходит переход на стрку, которая соотвествует этой метке.
Подбная штука есть в chrome, а так же Артем Горбунов нечто подобное делал.
Как реализовать в vim: no idea.
Remote System Explorer
Отличная штука в Эклипс, с помощью которой возможно работать с кодом, который расположен вне локальной машины. Т.е. есть сервер на котором расположен код, к нему есть доступ (telnet, ssh, ftp). С помощью Remote System Explorer можно подключится к этому серверу и работать с кодом, как будно бы он расположен локально.
Аналог в виме неизвестен. Но в случае вима в таком функционале нет большой необходимости. Вим можно поставить (а скорее всего он уже стоит) на удаленный сервер и запускать его в терминале.
Напишу навскидку что знаю…
Форматирование.
Для форматирования HTML/XHTML — ключевое слово «tidy».
Автодополнение.
Ищите «exuberant ctags» и обрящите.
Документация.
Думаю, сюда тоже можно прикрутить ctags с небольшой добавкой скриптов.
Контроль версий.
Можно же подключить svn/cvs/git из-вне, разве нет?
Немного vim-скрипта для склейки и должно сработать.
Смотреть :help по :! и ‘makeprg’.
Удалённые файловые системы.
Vim умеет открывать файлы по ftp и http, нужно только адрес указать в команде :edit полный. Возможно ещё надо какую-то опцию включить при сборке vim’а и .netrc настроить для авторизации на ftp’шках.
А кроме того для этого придумана файловая система fuse: с ней можно и ssh монтировать, и ftp (искать «sshfs», «curlftpfs», «fuse»).