И все-таки vim лучше, чем IDEA

Jun 24, 2015 19:00


Много раз слышал, что Intellij IDEA - очень хороший IDE для разных целей. На последней Erlang Factory в Bay Area познакомился с разработчиком (Сергеем Игнатовым), который в IDEA допиливает поддержку  Erlang, он тоже хвалил эту замечательную IDE.

И я решил попробовать, заставил 2 недели сидеть только под IDEA.
Краткое резюме - мне не очень подходит. Скорее всего из-за того, что я слишком хорошо настроил себе vim, и понимаю, как быстро там можно делать многие вещи.
Минусы:

  • есть микроскопические задержки между нажатием клавиши и реакцией. Очень неприятно. Проявляется чаще всего во всяких рюшечках (выделения цветами последних изменений, всяких подчеркиваний и выделениях цветом - т.е. то, что мне не нужно совсем).
  • не все полезные действия сделаны в виде шорткатов, но когда начинаешь определять их - постоянно пересекаешься с уже существующими. И не знаешь, вот полезная вещь, понадобится еще или нет? А все из-за перегруженности интерфейса.
  • иногда невозможно перейти на соседнюю вкладку (shift-cmd-[ или shift-cmd-]), фиг знает, почему. Она помечается синеньким шрифтом, и хз, что это значи. Я пытался посмотреть на агенду, но не преуспел. Аналогично пытался нагуглить, но не нашел ответа.
  • устаешь настраивать конфигурации тестирования для подпроектов в проекте (для erlang apps, для тех, кто в теме). Каждый раз тестирование пытается минимизироваться до текущей функции в текущем модуле, а если хочешь проверить весь модуль - нужно ручками убирать эти ограничения. Зашел в другой модуль - опять волшебная комбинация кнопок, опять мышкой переходишь в нужное поле, опять правишь - и так постоянно.
  • попробуйте без поллитра разобраться, как скачать зависимости и откомпилять rebar проект
  • как-то раз целый вечер пытался разобраться в “проблемах проекта”, которые по cmd-; видны в самом низу. Не смог побороть какие-то некорректные проверки в библиотеках, даже забыл уже какие были проблемы. Потому что через недельку они исчезли сами.
  • Перегружен интерфейс, при этом есть стопятьсот комбинаций, которые должны облегчить жизнь, но тяжело заучиваются.
  • Не умеет пока переходить на определение функции, если функция написана не в виде
    module:foo()
    а в виде
    apply(module, foo, [])
    думаю, они должны поправить в ближайшее время, очевидная вещь.
  • Не очень удобно анализировать изменения относительно HEAD git-репозитория. ":Gst" в fugitive делает его на раз-два.

Плюсы:

  • Удобно нажимать кнопку “проводить последнее тестирование при любом изменении”, особенно, когда пишешь юнит-тесты. Круть! Жаль, похоже, подобное не сделать в vim
  • Удобно открывать любой файл проекта по shift-cmd-o (примерно то же самое, что “:ts ” в vim.
  • Удобно делать поиск по проекту (cmd-shift-f). Почти так же удобно, как :Gdiff в vim fugitive.
  • Удобный vim-mode, почти все горячие комбинации покрывают. Есть неудобства, конечно, например, при исправлении “%s///gc” - он подтверждения спрашивает, но не показывает, что же он хочет заменить ;)
  • Удобно переходить на определение функции по ctrl-], работает чуть лучше, чем в виме:
    Например, у вас есть 2 функции mod1:foo() и mod2:foo(), и вы находитесь в модуле mod2, при этом стоите курсором на вызове mod1:foo(). Переход на определение функции в vim переходит на локальное определение foo (по-умолчанию для ctags). Переход на определение в IDEA перекидывает на mod1, это очень удобно. Хочу так же в vim, это можно сделать?
  • Удобно смотреть дерево изменений в VCS (git). Примерно то же самое, что делает
    `log --graph --pretty=format:"%Cred%h %Cgreen%an%Creset %s %Cred%d"`

Итого, плюсы IDEA перед vim - только в тестировании при изменении и переходе на определении функций
При этом минусов очень много, начиная с неоптимальности моих действий, и заканчивая какими-то вещами, которые бесят своей непонятностью, типа невозможности переключиться на соседнюю вкладку (возможно, это настраивается, но эти странные дефолты - зачем они?).

vim, idea

Previous post Next post
Up