TextMate.png TextMate — один из самых популярных текстовых редакторов в OS X. Он настолько известен, что не дает покоя пользователям других операционных систем и предпринимаются попытки сделать его клоны под Windows и Linux, а издательство The Pragmatic Bookshelf посвятило ему небольшую книгу — TextMate: Power Editing for the Mac.

Основная целевая аудитория этого продукта — программисты. Он представляет широчайшие возможности по написанию кода на всех мыслимых языках программирования и разметки: C, Java, Ruby, HTML, CSS, LaTeX и т.д.

На мой взгляд, TextMate в полной мере использует подход к созданию программных продуктов, заложенный в самой основе OS X. Снаружи мы имеем красивый и эргономичный интерфейса, а в базе — всю мощь командной строки и множества скриптовых языков. Кроме того для TextMate было написано огромное количество дополнительных пакетов (bundles) реализующих поддержку самых экзотических языков программирования.

Когда мы говорим что редактор поддерживает какой-то язык, мы в первую очередь вспоминаем о подсветке синтаксиса. Но дело этим не ограничивается. Пакеты TextMate помимо подсветки предоставляют широкий выбор команд (многие из которых доступны через шорткаты) облегчающих работу с документом на данном языке и великолепную систему шаблонов (snippets). Наконец для большинства языков TextMate позволяет быстро переходить по функциям в текущем документе простым нажатием ⇧⌘T.

Шаблоны заслуживают отдельного внимания, это именно то, что позволяет писать программы в TextMate намного быстрее. Как правило, он вставляется набором связного короткого имени и нажатием Tab. Например, если в скреипте на языке руби набрать if⇥, то получим конструкцию if, причем курсор будет сразу стоять в позиции, где мы пишем условие. Еще раз нажимаем Tab и попадем в тело условия.

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

Помимо работы с отдельными файлами, TextMate может работать и с целыми проектами, для этого достаточно открыть всю папку проекта и voila, сбоку появляется панель со списком папок/файлов. Кроме того, вы можете выставить переменные среды (environment variables) которые будут действовать для скриптов запускаемых в рамках проекта.

В этом редакторе очень хорошо проработана система навигации. Если вы работаете с проектом, то ⌘T вызовет всплывающее окно, где бы можете начать ввод имени файла. Именно начать, заканчивать вовсе не обязательно. Система фильтрация настолько умная что найдет искомый файл даже если вы наберете его начало и конец. Навигация по функциям доступна через ⇧⌘T. Кроме того вы можете ставить на строки закладки и легко перемещаться между ними. Программистов, пишущих код на C/C++/Objective-C должна порадовать возможность переключаться между файлом реализации и заголовочным файлом по ⌥⌘↑.

Если же вы не уверены куда вам надо попасть, то окно поиска по открытым файлам или же по проекту к вашим услугам. Результаты будут разбиты на строки и сгруппированы по файлам. Поиск можно вести по регулярным выражениям. Из того же окна можно сделать замену. Пожалуй, единственным недостатком этой функции является то, что до окончания поиска редактор “лочится” и недоступен для работы, но поиск даже крупным проектам не занимает более несколько секунд.

Хотя TextMate не интегрируется с шеллом, он умеет выводить результат работы своих команд и скриптов в отдельное окно или даже в окно самого редактора. Это оказывается весьма удобным, учитывая, что запуск скриптов висит на горячих клавишах. Если же вы всю основную работу ведете в шелле, то вы сможете запускать от туда же и редактор. При первом запуске вам будет предложено создать симлинк /usr/bin/mate.

droppedImage-2.png

Чтобы описать все имеющиеся шорткаты и шаблоны потребовалась бы целая книга, поэтому я расскажу, где вы можете узнать о доступных действиях. Помимо обычного меню наиболее интересные нам опции находятся в статусной строке. Вот что мы тут видим (слева направо):

  • Номер строки и колонки — весьма полезно при отладке программ.
  • Текущий тип файла. TextMate попытается определить его самостоятельно по расширению, но вы можете сделать это и самостоятельно. Тип файла определят загруженый bundle и доступные команды.
  • Доступ к командам всех bundles (текущий выбран по умолчанию). Это и есть наш главный справочник. Здесь есть все доступные шорткаты и шаблоны! Чтобы добиться наибольшей производительности, изучите это меню для нужных вам языков и запомните сокращения. Тогда вы почувствуете всю мощь TextMate
  • Далее находится меню настройки отступов для текущего файла
  • Последним в строке стоит меню символов (т.е. функций) текущего файла.

Как и любой инструмент, TextMate нужно подробно изучить, чтобы добиться максимума производительности. Начать, пожалуй, стоит с официального руководства на сайте автора . Возможно, вы также захотите прочитать книгу от издательства Pragmatic . Ну, и конечно, не забывайте заглядывать в меню шорткатов и шаблонов и со временем вы запомните то, что вам действительно нужно в повседневной работе.

Читайте также:

Скачать 30-дневную демо-версию можно с официального сайта . Стоимость одной лицензии $52.

P.S. у меня было 5 лицензий для раздачи, но я вынужден отдать их всем, кто написал для меня статьи, в том числе и Сергею — автору этого поста. Даже себе не осталось.