Sublime text на чем написан
Краткое руководство по Sublime Text
Sublime Text — один из лучших текстовых редакторов в мире. Количество встроенных функций и расширений, которые доступны благодаря плагинам восхищает даже самого искушенного пользователя. Git, Vim, Python, Shell Script, регулярные выражения — все лучшие изобретения человечества собраны в этой маленькой программе. Приложение невероятно красиво и удобно в использовании. Один раз открыв Sublime вы не закроете его никогда.
Установка
Скачать установочные файлы можно на официальном сайте продукта. У приложения есть версии для OS X, Windows и Linux.
Удивительно, но столь функциональное приложение весит всего лишь чуть более 7 мегабайт. Установка мгновенна и не требует участия пользователя.
Если имеются трудности с пониманием английского языка, можно установить плагин для русификации меню. Подробнее об установке плагинов будет рассказано ниже.
Основы использования
При запуске программы открывается безымянный текстовый файл.
В левом нижнем углу отображается строка и символ, на котором сейчас находится курсор. При наборе текста в Sublime кажется, будто клавиши под пальцами становятся мягче и процесс печати идет резвее.
Если подвести указатель мыши к верхней стороне экрана, то отобразится меню. В разделе File можно сохранить текущий документ или открыть новый для редактирования.
Файл можно сохранить под любым расширением.
И в большинстве популярных кодировок:
Верно и обратное. В Sublime можно открыть файл с любым расширением и кодировкой.
К слову, в Sublime вся введенная информация сохраняется автоматически. Текстовый редактор крайне редко принудительно завершает работу (у меня это было один-единственный раз, когда я пыталась сделать 20 тысяч замен символов в тексте одной командной), но даже в таком случае ни один напечатанный символ не пропадет.
Перемещение по документу
С правой стороны экрана отображается структура текста документа в миниатюре, которая позволяет мгновенно перемещаться из одной части файла в другую.
Переставить курсор на определенную строку или символ можно с помощью меню Goto.
Если полоса прокрутки случайно убежала далеко от местоположения курсора, то выручит пункт меню Scroll – > Scroll To Selection.
Поиск и замена
C окошком для ввода искомых символов и кнопками в правой части экрана все понятно. Разберемся для чего нужны иконки в левом нижнем углу экрана.
Самая левая кнопка включает поддержку регулярных выражений. Объяснять что это такое и зачем они нужны в этой статье не будем. Об этом лучше почитать у Джеффри Фридла.
Следующая за ней кнопка делает поиск чувствительным к регистру.
Кнопка с двумя кавычками настраивает поиск на нахождение только точных совпадений. Пример: на запрос “7” найдется только ” 7 “, а “87” и “78” не найдется.
По умолчанию, поиск идет в тексте начиная от текущего положения курсора и далее вправо и вниз (по ходу чтения). Кнопка с перевернутой стрелкой позволяет сменить это направление на противоположное.
Рядом с белым окном находится кнопка, которая подсвечивает все найденные в тексте совпадения. А кнопка слева от нее ограничивает область поиска выделенным фрагментом.
Палитра команд
Стандартный внешний вид Sublime безупречен. Для тех кто с этим не согласен есть пара десятков дополнительных тем оформления. Они доступны из пункта меню Preferences – > Color Sheme.
Настройки
Настройки Sublime меняются путем редактирования текста конфигурационного файла. К каждому параметру прилагается как минимум один абзац пояснений, что позволяет без труда разобраться что к чему. Обратите внимание, что выбранную тему оформления тоже можно менять через текст конфигурационного файла.А теперь перейдем к функциям Sublime, которые делают его великолепным редактором кода.
Подсветка синтаксиса
Подсветка синтаксиса в этом текстовом редакторе выглядит просто волшебно. Вот, к примеру, немного PHP и SQL:А вот HTML + JavaScript:
Sublime Text умеет эффектно подсвечивать код, написанный на трех десятках языков программирования.
Чтобы включить соответствующие оформление надо просто сохранить файл под правильным расширением.
Автодополнение кода
Sublime можно полюбить только за то, что кавычки и скобки в нем не нужно набирать два раза.
Стоит ввести в Sublime один символ, как он тут же предложит варианты завершения строки:
Для людей которые любят называть переменные наподобие “$moyPosledniyZimniyDenKogdaYaKatalsyaNaKonkah” эта функция бесценна.
Сворачивание кода
Если при взгляде на код голова кругом идет от иерархии циклов и условий, то значит это плохой код чтобы в нем разобраться без Sublime не обойтись. Слева, в том месте где отображается нумерация строк возле начала циклов и условий есть засечки, которые позволяют скрывать ненужные блоки кода. Для PHP эта функция работает отлично:
Сниппеты
При желании можно создавать собственные сниппеты и использовать коллекции чужих сниппетов.
Проекты
Еще одна замечательная функция Sublime, которая пригодится не только программистам — возможность объединить несколько файлов в один проект, что позволяет открывать и закрывать эти файлы одним движением руки, а также применять к ним групповые операции.
Чтобы отобразить в Sublime боковую панель с обозревателем файлов необходимо перетащить нужную папку на поле для набора текста.
Сочетания клавиш
Для каждой команды в Sublime есть сочетание клавиш, которое позволяет мгновенно ее запускать. Их очень легко выучить, так как они написаны возле соответствующего пункта меню.
Макросы
Для автоматизации своих действий в Sublime не нужно знать ни одного языка программирования. Ведь есть функция записи активностей пользователя. Для начала записи макроса необходимо выбрать пункт меню Tools – > Start Record Macro и выполнить необходимые действия.
Для запуска записанного макроса используется команда Playback Macro. Записанный макрос можно сохранить под расширением sublime-macro и делиться им с другими пользователями.
Гарантированный способ повысить скорость набора кода — научиться работать в текстовом редакторе vim, который существует уже почти четверть века. Он позволяет работать с текстом не притрагиваясь к мыши или трекболу. Это повышает производительность труда как минимум на треть. Задача освоения vim не самая простая, но она стоит того, чтобы за нее взяться.
Для работы в режиме Vim, в стандартной комплектации Sublime есть плагин Vintage Mode. По умолчанию он находится в неактивном состоянии. Включить его можно прописав в конфигурационном файле значение true для параметра vintage_start_in_command_mode.
И указать каким образом будет производиться вход и выход из vim режима:
Если вы пока еще не работали с vim, то велика доля вероятности что вам стоит научиться это делать. Вот эту картинку можно поставить на рабочий стол и в минуты размышлений созерцать ее и запоминать комбинации клавиш для vim/Vintage Mode для Sublime:
Плагины
Скачать различные плагины для Sublime можно на сайте Package Control. Вот небольшая подборка дополнений, которые на мой взгляд являются самыми полезными:
Написать свой плагин для Sublime может любой разработчик, владеющий языком Python. Подробнее о Sublime API и написании плагинов можно прочитать в статье How to create a Sublime Text 2 Plugin.
Где искать дополнительную информацию
На русском языке
На habrahabr.ru можно найти много интересных статей по тегам Sublime и Sublime Text 2.
Есть сайт с русскоязычной документацией по Sublime, но на данный момент на нем довольно мало информации.
На английском языке
О новых версиях можно почитать в официальном блоге продукта.
У пользователей Sublime Text есть форум, на котором за все время создано около 15 тысяч тем и каждый человек может задать свой вопрос.
О Sublime Text издана отдельная книга, которая содержит самое полное руководство по использованию текстового редактора. Стоит она 40 долларов, но ее авторы гарантируют, что это скромная инвестиция окупится мгновенно.
Sublime Text 2
Пару месяцев назад я случайно наткнулся на массу положительных отзывов о текстовом редакторе Sublime Text 2. Попробовав его в деле, я не разочаровался. Теперь это мой основной рабочий инструмент.
Sublime Text 2 — это платный текстовый редактор, написанный на C++, который:
Вопрос цены
Интерфейс
Одно из первых впечатлений о программе — она красива из коробки. Правильно подобранные шрифты, цветовая схема, плавные анимации (их здесь больше, чем в большинстве текстовых редакторов и IDE). Всё это имеет смысл, т.к. в итоге радует глаз и не отвлекает внимания. До тех пор, пока редактор не перегружен плагинами, он обладает весьма быстрым откликом, от чего я успел отвыкнуть, используя NetBeans.
Первое что бросается в глаза — отсутствие какой-либо панели инструментов. Также я пока не встретил ни одного диалогового окна, кроме стандартных окон сохранения/открытия файла. Вместо диалоговых окон используются «слои». Символы пробела и tab-а отображаются только при выделении текста, но в настройках можно задать режим «всегда».
Справа по борту расположена карта кода. Своеобразный аналог прокрутке страницы в виде pixel-карты, которая представляет из себя сжатый до
100px по горизонтали код текущего файла (включая подсветку синтаксиса). Помогает в ориентировании по файлу, а также упрощает прокрутку страницы, т.к. действует аналогично scrollbar-у. Сложно наверняка сказать «киллер-фича» это или очередная «свистелка», но в течение всего времени использования у меня так и не возникло желания убрать её.
Режим вертикального выделения является одной из самых важных функций для продвинутых текстовых редакторов. И sublime не исключение. В Linux-версии он активируется правой кнопки мыши при зажатом шифте. Очень удобно при быстрых правках разного рода списков, разметки и не только. Стоит отметить, что ST2 умеет искать и заменять по регулярным выражениям, без чего было бы сложно рассматривать его всерьёз.
Также стоило бы отметить — горизонтальный scroll. Если на вашей мыши его нет, воспользуйтесь shift + вертикальный scroll. Как оказалось — очень удобно. В статус панели, помимо ошибок и текущей позиции курсора, доступны переключатели текущего синтаксиса файла и размера tab-а.
Иконки-кнопки для раскрытия/сворачивания регионов кода (функции, блоки, теги и т.д.) несколько не очевидны. Дело в том, что хоть они и расположены, как и должны, слева от строки кода, но, по-умолчанию, отображаются лишь по наведению мыши (это настраивается). Доступны для множества структур, в частности очень порадовала возможность «сворачивания» SCSS-селекторов.
Sublime предоставляет массу возможностей для множественного выделения и правки. Т.е. можно установить курсор сразу в несколько мест и править код синхронно (при этом будут работать макросы, autocomplete, snippet-ы, буфер обмена и т.д.). Мне очень этого не хватало в Netbeans-е. Установить новую позицию курсора можно через ctrl + left_mouse_click. Или ctrl + left_double/_triple click (выделит слово/абзац целиком). Эти и другие комбинации клавиш и мыши гибко-настраиваемы.
Fuzzy поиск
Одна из самых разрекламированных функций редактора — нечёткий поиск. Он позволяет найти «modules/gallery/view/gallery/page.jade» вбив лишь «gapaja». Сказать, что это экономит время — всё равно, что ничего не сказать. В 99% случаев я открываю файлы или нахожу нужную мне функцию по вот таким вот обрывкам, напоминающим какой-то восточно-азиатский диалект 🙂 Из коробки доступны:
Этот список может быть расширен плагинами. О паре таких я расскажу чуть ниже.
Конфигурирование
Все настройки осуществляются через правку json-конфигов. Изменения вступают в силу сразу же после сохранения файла. Большая часть настроек, которые вам могут попасться (будь то сам редактор или же его плагины) разделены на 2 части — default и user. Т.е. конечному пользователю следует изменять именно user-конфиги, которые по-умолчанию, как правило, пусты.
Горячие клавиши
Горячие клавиши изменяются по тому же принципу, что и все остальные настройки, и точно также вступают в силу сразу же после сохранения конфига. В случае какой-либо ошибки, вроде неправильной комбинации клавиш, вы можете узнать подробности в консоли (Ctrl + `). Там вообще можно найти много полезных данных. Обратите внимание на картинку справа — это ссылка на подробную карту горячих клавиш (случайно нашёл в сети).
Думаю сильно углубляться в настройки гор.клавиш нет смысла, т.к. они интуитивное понятны. К примеру, следующий «бинд»:
Запускает макрос Delete Line при нажатии Control + E. А этот:
Работа с проектами
Переключение между проектами очень быстрое, что привело меня в восторг после NetBeans. По умолчанию — Ctrl + Alt + P. Редактор запоминает список открытых файлов, активную вкладку, позицию курсора и скролла. Также можно открыть новое окно (не вкладку, Ctrl + Shift + N) редактора и задать там другой проект.
Плагины
Основной язык написания плагинов — python. Наверное, поэтому их так много. Если вас интересует эта тема, возможно, вам пригодится эта статья.
PackageControl
Его установка весьма не очевидна. Сначала переходим на страницу плагина. Жмём зелёную кнопку install и попадаем на страницу с подробной инструкцией по установке. На момент написания статьи она состоит из копирования куска python-кода в консоль редактора (Ctrl + `) и нажатие на клавишу enter. Вы спросите — что за страшные шаманства? Не переживайте, на этом сюрпризы закончились. Дальше всё пойдёт как по маслу (при условии, что PackageControl нормально установился). Я надеюсь, разработчики добавят его в базовую сборку.
Небольшая подборка плагинов
Aligment — позволяет отформатировать конфиги/массивы/что-угодно так, чтобы значения располагались на одном уровне по горизонтали. Не сильно удобная штука, но лучше чем ничего. Для начала следует установить курсоры перед каждым значением, а затем нажать «Ctrl + Alt + A» (в Linux-версии).
FileDiffs — позволяет сравнить два файла на предмет различий. Добавляет опции «FileDiffs Menu» и «Diffs with tab» в меню таба, а также пару пунктов в контекстное меню самого редактора. Результат открывается в отдельном табе и, как и положено, подсвечивает строки зелёным и красным. Если ничего не открылось — файлы идентичны, о чём будет свидетельствовать сообщение в statusbar-е.
FuzzyFileNav — Позволяет, используя нечёткий поиск, открыть файл вне проекта, бегая по файловой структуре. Не так круто как в Ctrl + P, но, лично мне, куда удобнее, чем в стандартном диалоговом окне ОС.
FileHistory — fuzzy поиск по недавно открытым/закрытым файлам. Использовал до того, как нашёл GotoOpenFile.
GotoOpenFile — копия режима Ctrl + P, но применительно только к открытым файлам.
JsMinifier — позволяет упаковать выделенный (или весь код текущего файла) javascript. Плагин использует Google Closure Compiler и UglifyJS. Если ничего не произошло — смотрите в statusbar, скорее всего javascript-код не валиден.
PhpDoc — простой помощник для заполнения PhpDoc. Пользоваться так: пишем /**[tab]. Уже внутри — [собака]var[tab], [собака]return[tab] и т.д. Автоматически определять типы и имена переменных и прочие полезные штуки не умеет, но зато вставляет * при переводе каретки 🙂
GotoTab — позволяет переключать вкладки по нажатию Ctrl + [цифры]. Довольно удобная штука.
SublimeLinter — проверка синтаксиса на лету (или как настроите). Умеет готовить — CoffeeScript, CSS, Java, JavaScript, Objective-J, Perl, PHP, Python, Ruby. Использует уже готовые инструменты. К примеру, для JavaScript-а предлагает выбор между JsLint, jsHint и gjslint. jsHint, который стоит по умолчанию, не просто проверяет синтаксис, я навязывает вам свой true-coding-style, что частично можно настроить в конфиге. Мне этого не хватило, т.к. библиотека оказалась не столь гибкой, как бы хотелось, посему пришлось применять хирургические методы 🙂 Также стоит отметить, что SublimeLinter способен заставить ваш редактор — подвисать. В таком случае — покопайтесь в настройках, он достаточно гибко настраивается.
Tag — библиотека, предоставляющая удобные средства для работы с XML. Использую для приведения XML к читаемому виду. Конечно, на этом его возможности не ограничиваются. К примеру, набрав «div» и нажав ctrl + shift + «,» я получаю
XDebug — отладчик xdebug. Не очень удобный. Отладка в NetBeans куда удобнее. Однако для простых задач — может пригодиться. Пользователям *buntu обязательно следует прочесть раздел «Troubleshooting» на странице плагина.
LastEdit — глючный аналог ctrl + q в Netbeans. Перемещает курсор в места недавних изменений. Очень удобная штука, но, к сожалению, часто не срабатывает. Если вас интересует эта функция, возможно, вам стоит попробовать и этот плагин.
Более полный список доступен здесь. Но далеко не все плагины, которые мне попадались — в нём есть.
Подсветка синтаксиса из коробки достаточно обширна. Однако для nginx и apache2 конфигов, SCSS и Jade мне потребовалось установить плагины. Если для используемого вами языка такого плагина не нашлось, попробуйте портировать подсветку из TextMate, благо очень многие вещи из него поддерживаются как нативные.
Snippets
Snippet-ы — это заранее заготовленные куски кода, с расставленными в них якорями. Т.е. вместо того, чтобы писать some code можно написать snippet. Приведу простой пример:
Более подробную информацию можно найти здесь. Возможно, вам поможет моя подборка.
Макросы
Layouts
О том, что в ST2 есть слои, я узнал совсем недавно, увидев screenshot на lor-е. Слои позволяют поделить окно редактора на несколько частей (2, 3, сеткой и т.д.). Это очень удобно, когда что-то пишешь в один файл, опираясь на содержимое второго. Но с моим 19″ «квадратным» монитором эта возможность выглядит не очень привлекательной. К сожалению, нельзя открыть в разных слоях разные проекты. Также стоит отметить, что панель открытых файлов (которая слева), после включения режима нескольких слоёв, делится на несколько групп.
Заключение
Sublime Text 2 — отличный выбор для программиста или администратора. Для рядового пользователя, на мой взгляд, больше подошёл бы редактор без json-конфигов и с более очевидным GUI.
Важно понимать ST2 — текстовый редактор, а не IDE, хотя, используя сторонние плагины, его можно несколько приблизить к этому статусу. Правда, мне так и не удалось завести умный autocomplete.
А этом обзоре было много критики в сторону NetBeans, но я бы хотел отметить, что эта IDE мне нравится, и я до сих пор ей пользуюсь, хотя и крайне редко (к примеру, для отладки nodeJS или PHP-xDebug). Мне очень не хватает в ST2 столь же удобного средства для «патчинга» файлов, просмотра предыдущих версий, документации и разного рода вкусных штук, присущих IDE, вроде перехода к определению функции при нажатии ctrl + left_click, даже если файл находится чёрт знает где. Однако ST2 дал мне куда большую лёгкость и удобство при решении рядовых задач.
К сожалению, я не смог описать в этой статье всего, о чём меня попросили. Виной тому — отсутствие времени, а местами опыта. Однако, я возлагаю большие надежды на комментарии снизу. Уверен, в них будет много интересного.
О редакторе
На сцене текстовых редакторов для разработчиков появился новый актер — Sublime Text. Его предыдущая версия, была доступна лишь счастливым обладателям операционной системы Windows. И, к сожалению, этот факт сильно сужал круг его потенциальных поклонников. Но теперь все изменилось. Новый Sublime Text разрабатывается под все популярные платформы и старается вобрать в себя все самое лучшее у представителей этого класса программ.
Интерфейс
На самом деле, это не такая уж незначительная деталь, как может показаться на первый взгляд. Если вы пользуетесь инструментом большую часть рабочего дня, в нем должно радовать все. Не только скорость, возможности и удобство, но и эстетическая часть, тоже должна быть в порядке.
Подсветка ситаксиса
Это самое первое, на что обращаешь внимание в любом редакторе. Sublime Text по-умолчанию поддерживает огромное количество языков и предлагает на выбор около 20 цветовых схем.
Полноэкранный режим
В этом режиме рабочая область программы занимает весь экран. Очень полезно, если вы хотите, чтобы вас ничего не отвлекало. По настоящему функцию можно оценить когда подключено несколько мониторов. На одном экране редактор, на втором рабочий проект и больше ничего!
Миникарта
Этого не встречал еще ни где. В узкой колонке миникарты умещается примерно 5-6 экранов, что позволяет быстро перемещаться по коду. Это не замена и не аналог закладок, а просто еще один удобный способ навигации.
Мультипанели
Еще одна особенность, присущая далко не всем редакторам, это возможность параллельно работать с несколькими файлами в одном окне. Порой, это намного удобнее чем несколько независимых окон.
Подсветка парных скобок
Поставьте курсор внутри какой-либо сложной функции и ST подсветит ближайшие парные скобки.
Автосохранение
Для того, чтобы не нажимать «Сохранить» каждый раз, когда вам необходимо проверить внесенные изменения, в Sublime Text предусмотрена функция автосохранения. Редактор будет выполнять за вас эту операцию каждый раз, когда окно программы или вкладка с открытым файлом потеряют фокус.
Редактор
И все-таки, самое главное в редакторе, это его возможности работы с текстом. И у Sublime Text с этим все в порядке. Смотрите сами.
Снипеты
Сейчас все больше редакторов поддерживают снипеты. Наверное, уже можно сказать, что эта функция стала стандартом, наравне с подсветкой синтаксиса. Здесь ST ни чем не выделяется, но и не отстает от ближайших конкурентов. Все есть, и все отлично работает.
Кодкомплит
Автозавершения чего угодно. Если напечатать часть имени известной функции, ST дополнит её. Если подходящих совпадений не найдется, строка будет дополнена первым подходящим значением.
Макросы
Макросы позволяют записать и воспроизвести простейшие действия: набор текст, копирование, вставка и так далее.
Поиск и замена
Найдется все. Искать можно по всему файлу, только по выделенному фрагменту, с помощью регулярных выражений и в любом направлении. Также, хорошими помощниками станут автоматическая подсветка выделенного, инкрементное выделение и замена.
Проверка орфографии
Очень смышленая проверка орфографии. Подсвечивает слова, в которых были допущены орфографические ошибки, но только в текстовых строках и в комментариях.
Мультивыделение
Позволяет выделить несколько текстовых блоков и одновременно их скопировать или отредактировать.
Закладки
Значительно упрощают навигацию, особенно, когда вы работаете с большим файлом. Закладка запоминает не просто номер строки, а также выделенную область и положение курсора.
Настройка
Практически все параметры редактора настраиваются вручную в текстовых файлах. Пожалуй, не самый удобный способ на свете, но зато сразу видно все параметры и описание их назначения. Также, это позволяет легко переносить настройки с одного компьютера на другой.
Хоткеи
Файлы настроек позволяют изменить любое сочетание клавиш на удобное для вас.
Плагины
Функционал Sublime Text может быть легко расширен плагинами, написанными на Python. Для их создания разработан довольно обширный API.