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 можно подключится к этому серверу и работать с кодом, как будно бы он расположен локально.

Аналог в виме неизвестен. Но в случае вима в таком функционале нет большой необходимости. Вим можно поставить (а скорее всего он уже стоит) на удаленный сервер и запускать его в терминале.

Monday, October 20th, 2008 Uncategorized

1 Comment to Eclipse vs Vim

  1. Напишу навскидку что знаю…

    Форматирование.

    Для форматирования 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»).

  2. Milez on October 21st, 2008