Sublime Text 2

Категории: tools и python.

Уже дочитывал статью Джефа Этвуда и собирался сесть досматривать лекции по HCI, когда моргнул свет и в доме закончился интернет. В любом случае я собирался сегодня сюда написать, но хотел сделать это ближе к вечеру.

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

Для редактирования текста и относительно простых скриптов я, как правило, пользуюсь легковесным редактором, а навороченную среду разработки использую для чего-то более громоздкого. Среда разработки зависит от языка, на котором я в данный момент пишу, а вот легкими редакторами я пользовался разными под разными системами - под Windows долгое время это был Notepad++, под мак - Smultron.

Некоторое время назад из широко известного в узких кругах подкаста Радио-Т я узнал о новой версии редактора Sublime Text 2. Ведущие очень “вкусно” о нем рассказывали, так что я не удержался и полез пробовать. Редактор действительно порадовал, и хотя находится в данный момент в статусе бета-версии, почти полностью заменил те, которыми я пользовался раньше.

Основное преимущество Sublime Text 2 - простая и удобная система плагинов и общая гибкость настройки. Плагины пишутся на Python, который я с удовольствием использую уже года четыре, API для разработки плагинов довольно простой. Собственно плагинами можно накрутить в редактор почти всё что угодно - например, на конкурс от все того же Радио-Т и в рамках ознакомления с плагинной системой я написал два плагина:

Еще один плагин, которым я частенько пользуюсь - SublimeREPL, встраивает в редактор консоли от кучи вещей (Python, Ruby, различные шеллы).

Плагины, темы оформления и прочие расширения очень легко прикручиваются и настраиваются. Легко прикрутить уже готовую библиотеку - например, есть несколько попыток портировать org-mode из EMACS.

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

import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Для добавления менеджера пакетов нужно выполнить эту строчку в консоли редактора, которая вызывается по ctrl+`. После выполнения в списке команд, который вызывается по cmd+shift+p по умолчанию, добавляется команда “Package Control: Install Package”.

Кроме того, редактор кросс-платформенный и работает на любой системе, которую я использую.

Ещё приятная штука - модный в последнее время Distraction-Free Mode, в котором с экрана убирается всё кроме текста. Этим режимом я пользуюсь при написании постов :)

Ну и конечно куча стандартных функций текстовых редакторов для программистов - макросы, подсветка синтаксиса, работа с проектами и так далее, в Sublime Text 2 есть “из коробки”.

Теперь о функциях, которых мне пока не хватает.

  • Первая - возможности задавать кодировку по умолчанию для новых файлов. Есть пункт меню “Открыть с кодировкой …”, и если им пользоваться, редактор будет сохранять файл в той же кодировке, с которой открыл, но вот чтобы создавать файлы сразу в нужной кодировке вместо юникода - похоже, для этого нужно написать плагин. В юниксах это неудобства не вызывает, а вот на работе пользователи FAR Manager просили использовать cp1251.
  • Вторая - умение запрашивать пароль на маке при нехватке привилегий для изменения файла. Пока не умеет и даже если запустить его с sudo, файл не сохранит.

И еще один потенциальный минус, который в то же время и плюс - редактор графический. Всё весьма симпатично выглядит, но если вдруг есть только консоль - пользуйся старым добрым vi, благо он есть везде :)

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

Ну и в догонку, недавняя статья о том как настроить Sublime Text 2 для web и Python разработки”.