Sublime Text 3 для Python/Go после Atom
Один раз в пару лет, и обычно после прочтения всяких “срачей” на reddit или HN на тему “какой редактор лучше”, на меня находит мотивация попробовать поработать с другими инструментами для написания кода.
В один из таких периодов мне довелось познакомиться с Vim. Опыт его использования дал мне более широкое понимание о подходе работы с кодом и иной взгляд на редакторы в целом. Поэтому даже при трате времени на это, казалось бы бесполезное занятие, смотрю на подобный опыт позитивно. И чтобы дальше не углубляться в биографию, вот коротко в чем писал: Sublime Text 2 (~1 год) -> Aptana Atudio (~1) -> Pycharm (~2) -> Atom (~3 года и продолжаю).
Требования
Чтобы правильно оценить Sublime Text 3, стоит для начала определиться с критериями оценки. Как разработчик выбирает себе редактор всегда остается довольно личным, сравнить это можно с выбором волшебной палочки в Гарре Поттере. Но как по мне редактор должен обладать следующим:
- Поддержка любых форматов текстовых файлов. Редактор должен работать со всем от Markdown документов до Assembler без боли;
- Стандартизированная подсветка синтаксиса и линтер. И цвет тут не причем. Если в Python функции подсвечиваются зеленым, а переменные желтым, то и в Go и в С++ и где бы, то ни было функции должны быть зеленые, а переменные желтые. Тоже касается и вывода ошибок от линтера.
- Поддержка Git. Важно знать, что было удалено, что добавлено и в целом какие файлы были затронуты.
Поддержка форматов текстовых файлов
Sublime Text всегда с этим отлично справлялся, откроет хоть простенький txt, хоть 10Гб дамп базы.
Стандартизированная подсветка синтаксиса
Это самый слабый пункт, так как у Sublime Text нет ничего похожего на tree-sitter в Atom. И рассчитывать что в одной цветовой схеме все будет подсвечено как нужно во всех интересующих языках не приходиться. В ходе настройки пришлось убить не один день в поисках нужной схемы. Половина дотупных схем из не обновлялась от 3 до 4 лет, или плохо поддерживают современные языки, а про то, чтобы найти что-то в своих любимых тонаъ сразу можно забыть. Да, и проблема с линтером до сих пор решена не до конца. Хотя SublimeLinter пытается стандартизировать сообщения, не все разработчики плагинов спешат под него дорабатывать свои решения, из-за чего приходится плясать с бубном отключая родной линтер в плагине и подключая сторонний из SublimeLinter.
Поддержка Git
Очень долгое время это было слабым местом Sublime Text, все плагины были просто ужасны. Но с выходом Sublime Merge в марте 2019 все поменялось в лучшую сторону. И релиз редактора за версий 3.2 добавил нативную поддержку git и она не хуже чем в том же Atom или VS Code.
Настройка
Так как Sublime Text не предоставляет встроенных решений для автокомплитаи т.п. вещей все реализовано через плагины. Ставятся они через http://packagecontrol.io парой команд. Из важных плагинов хочется отметить LSP, для поддержи Language Server Protocol, который избавляет от необходимости ставить монструозные решения по типу Anaconda. Мои настроеки можно глянуть на GitHub.
Дополнительно
Вот еще моменты, на которые стоит обратить внимание:
- + Build System не идеальна, но очень помогает в проектах, для запуска тестов и сборки;
- - Хорошие плагины могут быть платными и иногда альтернатив нет;
- - Специфично реализована работа с деревом файлов;
- - Очень специфичная работа со свертыванием кода, порой она даже ломается;
- - Сложный дебаг ошибок в плагинах;
Итог
Спустя месяц работы в Sublime Text, могу сказать что он не лучше и не хуже Atom, это просто другой редактор. Есть парочка проблем, но они кажутся не столь значительными на фоне плюсов. Что отталкивает лично меня это закрытый код и не обновляющиеся плагины, но ради справедливости стоит отметить что Atom страдает от брошенных плагинов куда больше. Но из-за открытости, бодрого развития и симпатии к GitHub, пока останусь с Atom.