пятница, 29 июня 2012 г.

Сравнение Sublime Text 2 и Vim


На днях вышла финальная версия редактора Sublime text 2. Почитав обзоры и попробовав его в деле, я решил написать сравнительный обзор моего текущего редактора (Vim) и Sublime.



Небольшое пояснение, под Vim, я тут подразумеваю GVim/MacVim, так-как лично мне удобнее пользоваться именно GUI версиями vim`a.

Порог вхождения

Начнём с Vim`а, здесь порог вхождения несколько выше, для продуктивной работы вам понадобится изучение режимов редактора, полезных команд и сочетаний клавиш. Не обязательно учить их все, но что такое режимы и шорткаты для перехода в режим редактирования или в командный режим (я про Command Mode, а не Normal Mode), знать надо. Это я еще не затронул тему настройки vim, тут по хорошему нужно учить VimScript для написания более-менее годного конфига. Мой vimrc перевалил отметку 42кб и это не считая настроек для плагинов.
С Sublime напротив, ситуация куда лучше, все кто когда либо редактировал текст в gedit/notepad++ и т.д. освоятся быстро, сочетаний клавиш не так много, настройка осуществляется путём правки конфига на JSON.

 

Редактирование текста

В vim заложена концепция модульности. И уж поверьте, все его режимы придуманы не для того чтобы вы постоянно тянулись к клавише Esc, в них скрыта реальная мощь. В качестве доказательств приведу пару статей эффективное использование vim и Эффективное использование Vim, не удивляйтесь что у них одно название.
Что же нам может предложить Sublime text 2? Во первых очень удобная вещь под названием Multiple Selection, даёт возможность выбрать и редактировать одновременно несколько мест в тексте. Так-же из коробки есть авто-закрытие скобок, авто-отступы, авто-завершение кода. Еще из плюсов хочется отметить подсветку всех вхождений слова под курсором (для этого в Vim надо устанавливать плагин). Пару слов о поиске, в обоих редакторах он выполнен на отлично. Присутствует всё, что должно быть у продуктов такого класса: поиск с помощью регулярок, поиск по мере набора, поиск в файлах и так далее.


Расширяемость

Возможности обоих редакторов могут быть расширены с помощью скриптовых языков, в случае Sublime это python. Vim же даёт на выбор больше языков (python, ruby, perl) но основным является VimScript.
Однако именно в Vim интеграция более тесная, скриптовый язык это просто продолжение редактора. Любая команда или клавиатурная привязка доступна из VS. Приведу пример. В Sublime вы пишете плагины, а в Vim c помощью VimScript вы можете писать всё что угодно: файлы подсветки синтаксиса, цветовые схемы, макросы, интеграцию с компиляторами, тот же файл настроек по сути является файлом VimScript. Можно сказать что значительная часть функционала Vim написана на VimScript, и только ядро редактора это код на С.

Плагины

Естественным продолжением предыдущей темы является плагиновая система редакторов. Sublime достаточно молод и еще не обзавёлся таким количеством плагинов, которым обладает Vim. Посмотреть большинство можно здесь. На данный момент в репозитории насчитывается 440 пакета. Есть как платные, так и бесплатные. Функционал некоторых плагинов действительно впечатляет. Но я не увидел чего либо, чего нету в многотысячном репозитории плагинов для Vim. Для последнего же существует куда больше мощных плагинов, значительно расширяющих функционал редактора (используемые мной плагины описаны здесь)
Тут безусловным победителем выступает Vim. Однако с ростом популярности Sublime, ситуация может изменится.


Выводы

Sublime Text 2 Отличный текстовый редактор для программистов, сочетающий в себе приятный интерфейс (чего только стоит один minimap)  и мощный функционал. Он прост в освоении и хорошо расширяем. 
Vim же, со своими режимами и командами мощнейший инструмент редактирования кода. Так же к нему написана не одна сотня отличных плагинов. Но для того чтобы научится им пользоваться, может потребоваться некоторое время. Тут на любителя, если вам нравится настраивать всё под себя и учить новые методы работы с текстом, то Vim станет для вас отличным решением. Если же вам просто нужен превосходный редактор исходного кода с хорошими плагинами, то попробуйте Sublime Text 2.

 

 P.S.

Есть еще один критерий, платность/бесплатность продукта, Vim бесплатен и открыт, Sublime напротив проприетарен и стоит 59$. Однако моё мнение такого, если вы пользуетесь инструментом каждый день и при этом он помогает вам зарабатывать себе на хлеб. То нет ничего криминального в том чтобы купить Sublime. Труд должен оплачиваться.


P.P.S.

Vim и Sublime  это текстовые редакторы, я не сравниваю их с IDE, потому что это разные инструменты, призванные решать каждый свои задачи. Думаю никто в здравом уме, не сядет писать большой проект на Java, вооружившись одним перечисленных текстовых редакторов. А вот подправить код или написать небольшую утилиту на python или C++, то вполне.

5 комментариев:

  1. Анонимный17 июля 2012 г., 16:21

    Sublime бесплатен, для него есть донейт в виде 59 долларов. Никто не заставляет платить, это дело совести.

    ОтветитьУдалить
    Ответы
    1. Не соглашусь, это всё же не донейт. Автор прямо предлагает купить лицензию. И это окошко выскакивает после 20ти сохранений файла, что у людей вроде меня вызывает раздражение, так как ctrl+s я жму на автомате каждые несколько минут.

      Удалить
  2. Для меня решающим есть интеграция с системами контроля версий. Vim встраивается в Git идеально (включая difftool, mergetool)l

    ОтветитьУдалить
  3. Пробовал sublime на php-файлах одного проекта. Просто очень приятный редактор текста. За него и 59 мёртвых американских прикзидентов не жалко. Но vim на него пока менять не буду, да и emacs тоже пока не удаляемс.

    ОтветитьУдалить
  4. Есть еще очень хороший редактор Codelobster
    Сам пользуюсь и все рекомендую

    ОтветитьУдалить