Лучший текстовый редактор? Atom, Sublime, Visual Studio Code, Vim | by Codementor
Чтение: 10 мин.·
28 декабря 2016 г.Сегодня существует так много текстовых редакторов для программирования, что, казалось бы, простая задача выбора одного из них внезапно становится пугающей и непосильной.
Прямой ответ на вопрос «какой текстовый редактор лучше всего подходит для разработчиков?» вопрос не существует, в этом посте я поделюсь с вами параллельным сравнением четырех самых популярных из них: Atom, Sublime, Visual Studio Code и Vim.
После прочтения списка плюсов и минусов, я надеюсь, у вас будет достаточно информации, чтобы сделать выбор, который наилучшим образом соответствует вашим потребностям.
Отказ от ответственности: Как и при любом сравнении, некоторые из этих мнений субъективны и в основном основаны на моих личных предпочтениях. Я тот, кто пишет для Интернета (JS, CSS, HTML и т. д.), используя Sublime для Mac, поэтому моя точка зрения немного смещена в сторону того, к чему я привык. Тем не менее, я старался быть максимально объективным.
- URL-адрес: https://atom.io/
- Стоимость: бесплатно (лицензия MIT)
- Разработчик: GitHub
- Платформы: OSX, Windows, Linux 0033
Атом — относительный новичок в мир текстовых редакторов, но с тех пор, как он был впервые выпущен в 2014 году, он приобрел огромную популярность. Давайте начнем с обзора его основных функций:
Пакеты
Возможность добавления дополнительных функций к редактированию очень важна, и это область, Атом сияет. Менеджер пакетов установлен по умолчанию, и, что еще лучше, все пакеты размещены на 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 — возможность переопределять настройки для каждого типа файла — это здорово! Например, разные отступы для JS, CSS и HTML очень просты с Atom.
Производительность
Если у Atom есть одна особенность, то временами он кажется медленным. Иногда при открытии файла или переключении между вкладками достаточно задержки, чтобы чувствовать себя болезненно (особенно когда вы находитесь в самом разгаре разработки). Когда я пробовал Atom, когда он был впервые выпущен, производительность была проблемой. С тех пор, конечно, стало лучше, но разочарование все еще есть.
Вердикт
Atom — отличный инструмент, особенно для тех, кто хочет легко настраивать свой редактор, помимо того, что предлагают другие. Как веб-разработчик, свобода настройки, добавления и расширения вашего редактора дает невероятное ощущение силы. Мне также нравятся его документы. Руководство по летной эксплуатации Atom представляет собой отличную отправную точку для новых пользователей.
Самым большим недостатком для меня по-прежнему остаются проблемы с производительностью, но для бесплатного редактора Atom просто великолепен!
- URL-адрес: https://www.sublimetext.com/
- Стоимость: 70 долларов США за лицензию с бесплатной пробной версией
- Разработчик: Джон Скиннер, бывший инженер Google
- Платформы: OSX, Windows, Linux
Sublime был выпущен еще в 2007 году, поэтому у него было почти десятилетие, чтобы созреть. Согласно опросу разработчиков, проведенному Stackoverflow в 2016 году, это третья по популярности среда разработки.
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 году.
- URL: https://code.visualstudio.com/
- Стоимость: бесплатно
- Разработчик: Microsoft
- Платформы: OSX, Windows, Linux
Visual Studio Code (VSCode) — относительный новичок в мире текстовых редакторов. Он был выпущен только в прошлом году (апрель 2015 г.), но уже набирает обороты. Microsoft проделала большую работу по созданию мощного и гибкого кроссплатформенного редактора, который вызывает большой интерес у разработчиков.
Пакеты
Как и другие наши редакторы, VSCode имеет хорошую экосистему плагинов (расширений). Управление расширениями встроено, и их уже доступно несколько тысяч! Как и в случае с Atom, некоторые из них устанавливаются по умолчанию.
Вам нужно будет потратить некоторое время на выбор плагинов, которые лучше всего подходят для вашего рабочего процесса. Один из моих любимых (и то, что меня восхищает в VSCode) — Debugger for Chrome. Это позволяет вам устанавливать точки останова и отлаживать JS из VSCode.
То же самое можно сделать и с Node.js — установить точки останова в VSCode и выполнять пошагово, пока процесс узла выполняется в терминале.
Редактирование и рабочий процесс
Хотя VSCode построен аналогично Atom, используя Electron, Node и HTML/CSS, на самом деле он намного быстрее без каких-либо реальных задержек.
Неделю пользовался редактором, в целом остался доволен. Это было очень знакомо Sublime и Atom. Упомянутая выше функция отладки была удовольствием. Я также настроил некоторые функции автодополнения IntelliSense, которые (хотя и болезненные для первоначальной настройки) начали демонстрировать свои преимущества примерно через день. Я уже мог быстро набирать имя функции, не запоминая аргументы (или их типы, если уж на то пошло).
В качестве дополнительного бонуса очень удобна интеграция с Git. Не такой мощный, как то, что я получаю с помощью SourceTree, но для обычных операций, таких как коммиты и сравнения, он оказался идеальным и ускорил время моей разработки.
Настройка
Как и в предыдущих двух редакторах, присутствуют ожидаемые функции настройки — все необходимые переносы, отступы, темы, языковые настройки и т. д. Node.js, Electron, HTML и CSS, он определенно кажется быстрым (в отличие от Atom). У меня не было лагов при открытии/изменении файлов. Поиск был также быстрым. Я считаю, что одно из различий между Atom и VSCode заключается в том, что редактор пользовательского интерфейса построен на Monaco (из Visual Studio Online), что может быть объяснением разницы в производительности. В любом случае производительность определенно на уровне Sublime.
Вердикт
В целом VSCode меня очень впечатлил, и я решил перейти на него на постоянной основе. Мне еще предстоит сделать этот шаг, чтобы полностью погрузиться в него, но я думаю, что было бы неплохо настроить его в соответствии со стандартами, к которым я привык в Sublime. После этого, я думаю, я действительно мог бы придерживаться этого дольше. Интеграция с Git и отладчик в редакторе — отличные функции, с которыми я боролся в Sublime, но почти сразу заработал в VSCode.
- URL: http://www.vim.org/
- Стоимость: Бесплатная лицензия, совместимая с GPL
- Разработчик: Bram Moolenaar
- Платформы: 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 автором Matt Goldspink .
SimpleText · PyPI
Пакет для простого управления текстовыми данными.
Установить с помощью:
pip install SimpleText
1) Функция предварительной обработки
Эта функция принимает строку в качестве входных данных и выводит список токенов. В функции есть несколько параметров, помогающих быстро выполнить предварительную обработку строки.
Параметры:
текст
(строка): строка текста (1,2) будет униграммой и биграммой, (2,2) будет просто биграммойremove_less_than
(int, по умолчанию = 0): удаляет слова меньше X буквremove_more_than
(int, по умолчанию = 20): удаляет слова, содержащие более X букв False): удаляет не- алфавитные токеныremove_stopwords
(логическое значение, по умолчанию = False): удаляет стоп-словаremove_custom_stopwords
(список, по умолчанию = []): удаляет пользовательские стоп-словалемма 9 0192 (логический, по умолчанию = False): леммантизирует токены (через алгоритм Word Net Lemmantizer)
основа
(логический, по умолчанию = False): базовые токены (через алгоритм Porter Stemming)В приведенном ниже примере мы предварительно обрабатываем строка:
- строчные буквы
- удаление пунктуации
- удаление стоп-слов
- удаление слов, содержащих более 15 букв и менее 1 буквы
из препроцессора импорта SimpleText. preprocessor text = 'На прошлой неделе я ходил в магазины.' предварительная обработка (текст, n_grams = (1, 1), remove_accents = False, более низкий = True, remove_less_than = 1, remove_more_than=15, remove_punct=True, remove_alpha=False, remove_stopwords=True, remove_custom_stopwords=[], lemma=False, Stem=False, remove_url=False)
Результат будет таким:
['последний', 'пошел', 'магазины', 'неделя']
Во втором примере мы обрабатываем строку следующим образом:
- генерируем униграммы и биграммы
- ствол
- удаление URL
- удаление акцентов
- строчные буквы
из препроцессора импорта SimpleText.preprocessor text = "Мне нравится погода в Испании в этом году! https://en.tutiempo.net/spain.html" предварительная обработка (текст, n_grams = (1, 2), remove_accents = True, нижний = True, remove_less_than = 0, remove_more_than=20, remove_punct=False, remove_alpha=False, remove_stopwords=False,remove_custom_stopwords=[], lemma=False, Stem=True, remove_url=True)
Это выводит:
["я", "любовь", "это", "погода", "это", "год", "в", "Испания!", ("я", 'любящий'),('любящий', 'тот'),('тот', погода', ('погода', 'это'), ('это', 'год'), ('год', 'в'), ('в', 'испания!')]
2) Индивидуальная предварительная обработка текста
В качестве альтернативы можно отдельно применить этап предварительной обработки, не используя всю функцию
.