При таком большом количестве программных текстовых редакторов, казалось бы, простая задача выбора одного из них внезапно становится пугающей и непосильной.

В то время как прямой ответ на вопрос «какой текстовый редактор лучше всего подходит для разработчиков?» Вопрос не существует, в этом посте я поделюсь с вами параллельным сравнением четырех самых популярных из них: Atom, Sublime, Visual Studio Code и Vim.

Я надеюсь, что после прочтения списка плюсов и минусов у вас будет достаточно информации, чтобы сделать выбор, который наилучшим образом соответствует вашим потребностям.

Заявление об ограничении ответственности: как и при любом сравнении, некоторые из этих мнений являются субъективными и в основном основаны на моих личных предпочтениях. Я пишу для Интернета (JS, CSS, HTML и т. Д.) С помощью Sublime для Mac, поэтому моя точка зрения немного искажена в сторону того, к чему я привык. Тем не менее, я старался быть максимально объективным.

Атом

  • URL: https://atom.io/
  • Стоимость: бесплатно (лицензия MIT).
  • Разработчик: GitHub
  • Платформы: OSX, Windows, Linux

Атом описывается как:

Взломанный текстовый редактор для 21 века

Atom - относительный новичок в мире текстовых редакторов, но с момента своего первого выпуска в 2014 году он набрал огромные обороты. Давайте начнем с обзора его основных функций:

Пакеты

Возможность добавлять дополнительные функции к редактированию очень важна, и это область, в которой Atom сияет. Диспетчер пакетов установлен по умолчанию, и, чтобы сделать работу еще лучше, все пакеты размещены на Github.

На момент написания у них было доступно 6 452 пакетов и тем! Пакеты настолько важны для Atom, что основные функции, такие как Tree View и Settings View, являются просто предустановленными пакетами.

Редактирование и рабочий процесс

В целом в Атоме все достаточно гладко. Самая большая болевая точка? Выяснение, какие дополнительные пакеты нужно установить при запуске с нуля.

Например, мне нравится миникарта, которая помогает мне визуально переходить к частям файла. Еще мне нужно было настроить автозаполнение с помощью Autocomplete +. Я тот, кто часто работает с парой файлов одновременно, поэтому возможность настройки редактирования с разделенной панелью является обязательной. Это функция, которую хорошо поддерживает Atom.

Еще одна приятная особенность Atom, которой мне не хватает в Sublime, - это поддержка перетаскивания файлов / папок в виде дерева. Я так привык, что в Sublime этого не было, что возможность менять местами - настоящее удовольствие!

Наконец, интеграция с git великолепна ... в конце концов, она сделана GitHub!

Настройка

Очень важно иметь возможность настроить редактор в соответствии с вашим процессом и стилем разработки. Лично мне всегда нужно включать такие вещи, как «обрезка пробелов при сохранении», «сохранение при потерянном фокусе файла», которые легко настроить и переопределить в Atom.

У Atom есть отличная страница документации о том, как даже переопределить стили (Atom написан на чистом HTML / CSS поверх Chromium) - http://flight-manual.atom.io/using-atom/sections/basic-customization/

В целом, мне нравится настраиваемость Atom - возможность переопределить настройки для каждого типа файла просто великолепна! Например, с Atom очень просто использовать разные отступы для JS, CSS и HTML.

Представление

Если с Atom и есть что делать, так это то, что временами он кажется медленным. Иногда при открытии файла или переключении между вкладками возникает такая задержка, что становится неприятно (особенно, когда вы в самом разгаре разработки). Когда я попробовал Atom, когда он был впервые выпущен, производительность была проблемой. С тех пор, безусловно, стало лучше, но разочарование все еще существует.

Вердикт

Atom - отличный инструмент, особенно для тех, кто хочет легко настраивать свой редактор, а не только другие. Как веб-разработчик, свобода настраивать, добавлять и расширять свой редактор дает невероятное ощущение силы. Мне также нравятся его документы. Руководство по летной эксплуатации Atom - отличная отправная точка для новых пользователей.

Самым большим недостатком для меня по-прежнему будут проблемы с производительностью, но для бесплатного редактора Atom ярко сияет!

Возвышенный

  • URL: https://www.sublimetext.com/
  • Стоимость: 70 долларов США за лицензию с бесплатной пробной версией.
  • Разработчик: Джон Скиннер, бывший инженер Google.
  • Платформы: OSX, Windows, Linux

Sublime был выпущен еще в 2007 году, так что ему потребовалось почти десять лет, чтобы созреть. Согласно опросу разработчиков, проведенному Stackoverflow в 2016 году, это 3-я по популярности среда разработки.

V3 Beta - его последняя версия, и хотя она уже давно находится в стадии бета-тестирования, пусть вас это не беспокоит. Продукт на самом деле очень стабилен.

Пакеты

Любой пользователь Sublime скажет вам, что первым установленным им пакетом является плагин Sublime Package Control. Я думаю, все мы втайне надеемся, что Sublime 3 добавит это по умолчанию, но пока вам просто нужно перейти на страницу установки на их веб-сайте и скопировать какой-нибудь непонятный Python и… Presto! Теперь вы можете легко установить любой пакет из Sublime.

Как и Atom, в Sublime есть множество пакетов и тем! Для меня самое главное:

  • SideBarEnhancements: без этого переименование / перемещение / дублирование файлов не поддерживается.
  • SublimeLinter: для добавления линтеров для разных языков.
  • GitGutter - показывает статус git слева рядом с номерами строк.

Также есть из чего выбрать. В целом, поддержка пакетов в Sublime очень хороша, просто жаль, что вам нужно перепрыгнуть через этот обруч в начале, чтобы даже начать с ним.

Редактирование и рабочий процесс

Для меня использование проектов имеет решающее значение при работе в Sublime - это помогает мне сосредоточиться на файлах, соответствующих тому, что мне нужно. Возможность поиска файла и между файлами выполняется быстро и легко. Мне часто приходилось выполнять поиск в сотнях файлов, чтобы найти фрагмент кода, и скорость Sublime меня никогда не подводила.

Как и в случае с Atom - настоящая сила приходит, когда у вас установлены некоторые ключевые плагины. Правильная подсветка синтаксиса, средства форматирования JSON, линтеры и т. Д. Занимает некоторое время, но после их установки и настройки их больше не нужно трогать.

Один из недостатков, который я обнаружил, заключается в том, что нет подходящего плагина для Git, который позволил бы мне делать отличные различия и менять этапы. Я действительно доверяю только SourceTree для этого. Я уверен, что другие смогут меня поправить, если найдется достойный плагин, который может помочь.

Настройка

Опять же, Sublime очень похож на Atom. Доступна возможность управлять такими аспектами, как «сохранение при потере фокуса», «обрезка пробелов» и др. Файлы конфигурации представляют собой простой формат JSON, и вам предстоит поиграть со множеством скрытых настроек.

Представление

Вот где Sublime превосходит Atom - открытие, закрытие, поиск и т. Д. Происходит очень плавно и быстро. Единственная проблема, с которой я когда-либо сталкивался с производительностью, - это плохо работающие плагины, но даже в этом случае вы получите предупреждающее сообщение, когда кажется, что плагин работает слишком долго.

Вердикт

Как я уже упоминал в начале, я давно пользуюсь Sublime, поэтому мои мнения здесь, вероятно, будут немного предвзятыми, но в целом Sublime - гибкий и быстрый редактор. Есть причина, по которой он по-прежнему входит в тройку лучших сред разработки в 2016 году.

Код Visual Studio

Visual Studio Code (VSCode) - относительный новичок в мире текстовых редакторов. Он был выпущен только в прошлом году (апрель 2015), но уже набирает обороты. Microsoft проделала огромную работу по созданию мощного и гибкого кроссплатформенного редактора, который вызывает большой интерес у разработчиков.

Пакеты

Как и в случае с другими нашими редакторами, у VSCode есть хорошая экосистема плагинов (расширений). Управление расширениями встроено, и их уже доступно несколько тысяч! Как и в случае с Atom, некоторые из них устанавливаются по умолчанию.

Вам нужно будет потратить некоторое время на выбор плагинов, которые лучше всего подходят для вашего рабочего процесса. Один из моих любимых (и что меня восхищает в VSCode) - Отладчик для Chrome. Это позволяет вам устанавливать точки останова и отлаживать JS из VSCode.

То же самое можно сделать и с Node.js - установить точки останова в VSCode и выполнить пошаговое выполнение, пока процесс узла выполняется в терминале.

Редактирование и рабочий процесс

Хотя VSCode построен аналогично Atom с использованием Electron, Node и HTML / CSS, на самом деле он намного быстрее без каких-либо реальных задержек.

Я провел неделю в редакторе и в целом остался доволен. Это было очень знакомо Sublime и Atom. Упомянутая выше функция отладки была удовольствием. Я также настроил некоторые функции завершения IntelliSense typeahead, которые (хотя изначально было сложно настраивать) начали показывать свои преимущества через день или около того. Я уже мог быстро набирать имя функции, не запоминая аргументы (или их типы, если на то пошло).

В качестве дополнительного бонуса интеграция с Git очень удобна. Не такой мощный, как то, что я получаю с помощью SourceTree, но для обычных операций, таких как коммиты и различия, он оказался идеальным и ускорил мое время разработки.

Настройка

Как и в предыдущих двух редакторах, есть ожидаемые функции настройки - все необходимые оболочки, отступы, темы, языковые настройки и т. Д.

Представление

Как упоминалось ранее, хотя VSCode (как и Atom) построен на Node.js, Electron, HTML и CSS, он определенно работает быстро (в отличие от Atom). Никаких задержек при открытии / изменении файлов не наблюдалось. Поиск был также быстрым. Я считаю, что одно из различий между Atom и VSCode заключается в том, что редактор пользовательского интерфейса построен на базе Monaco (из Visual Studio Online), что может быть объяснением разницы в производительности. В любом случае производительность определенно на уровне Sublime.

Вердикт

В целом я был очень впечатлен VSCode до такой степени, что решил перейти на него на более длительный срок. Мне еще предстоит сделать этот шаг, чтобы полностью погрузиться в это дело, но я думаю, что было бы неплохо настроить его для праздников, чтобы он соответствовал тем же стандартам, к которым я привык в Sublime. После этого, думаю, я действительно мог бы придерживаться этого дольше. Интеграция Git и отладчик в редакторе - отличные функции, с которыми я боролся в Sublime, но почти сразу же заработал в VSCode.

Vim

  • URL: http://www.vim.org/
  • Стоимость: Бесплатная лицензия, совместимая с GPL.
  • Разработчик: Брам Мооленаар
  • Платформы: OSX, Windows, Linux

Я чувствую, что все разработчики должны в какой-то момент пройти «ритуал перехода» и использовать Vi или Vim для проекта. Возможность редактировать или просматривать файл на удаленном сервере через терминал - чрезвычайно продуктивная и важная задача. Я видел, как многие разработчики прыгают через все препятствия, используя SFTP, или curl, и повторно загружают файлы.

Однако я также понимаю, что одно упоминание о Vim вызывает у некоторых дрожь, а у других даже праведное негодование. Если бы я его пропустил, я бы опасался серьезного удара со стороны опытных пользователей Vim;) Честно говоря, те, кто потратил время на его освоение, это невероятно продуктивная среда!

Пакеты

В Vim есть более 14 000 пакетов, по одному на все! Обозреватели деревьев, подсветка синтаксиса, темы, интеграция с Git и т. Д. Все это есть в нескольких версиях. Vim невероятно гибкий и мощный. Однако, как и в случае со всеми другими редакторами, упомянутыми выше, знание того, какие плагины лучше всего устанавливать, требует некоторых внутренних знаний и рекомендаций.

Лично я обнаружил, что в качестве отправной точки отказался от самых популярных подключаемых модулей на http://vimawesome.com/.

Редактирование и рабочий процесс

Во-первых, для тех, кто не знаком с Vim, это, по сути, текстовый редактор командной строки. Следовательно, это не какое-то приложение, в котором вы дважды щелкаете мышью и перемещаетесь по нему. Управление открытием, закрытием, редактированием и сохранением осуществляется с помощью сочетаний клавиш.

Когда я учился в колледже, нас заставляли работать только в Vi весь модуль. Как только вы вынуждены делать что-то подобное, обычные команды с клавиатуры начинают становиться вашей второй натурой. Если вы действительно хотите стать пользователем Vim, это требует серьезных обязательств, но я обещаю, что к концу вы почувствуете себя абсолютным гением!

Честно говоря, я считаю, что работа в Vim менее эффективна, потому что я недостаточно знаю сочетания клавиш. Я могу легко редактировать отдельные файлы, искать, заменять и т. Д., Но при работе с несколькими файлами я начинаю терять след. Так что для меня Vim - это уже перебор.

Настройка

Vim потрясающе настраиваем. Если вы выполните поиск в Google по запросу .vimrc, вы найдете множество примеров предварительно настроенных файлов конфигурации Vim. Короче говоря, в Vim все возможно.

Представление

Единственным препятствием для производительности в Vim является пользователь… другими словами, вы! Он настолько сырой и быстр, насколько это возможно, но производительность заключается в том, насколько быстро вы можете вводить свои команды и перемещаться! Если вы опытный пользователь Vim, он работает невероятно быстро!

Вердикт

Vim - это настолько простой редактор, насколько это возможно. Это может быть невероятно быстрая и эффективная среда разработки, если у вас хватит терпения изучить команды. Существует отличная онлайн-игра http://vim-adventures.com/, которая помогает обучить основным командам, таким как перемещение файлов с помощью клавиш h, j, k и l.

Окончательный вердикт

У всех вышеперечисленных редакторов есть свои плюсы и минусы. Лично я бы сказал, что в своей карьере разработчика вы должны дать каждому из них хотя бы неделю, чтобы лично убедиться, что работает, а что нет. Я надеюсь, что обобщение этих четырех самых популярных текстовых редакторов станет хорошей отправной точкой при рассмотрении вопроса о внесении изменений в редактор.

Что мы упустили? А какой твой любимый редактор? Дайте нам знать в комментариях ниже.

Изначально эта статья была опубликована в Codementor Мэттом Голдспинком.