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

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

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

droppedImage.png

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

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

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

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

droppedImage-4.png

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

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

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

droppedImage-2.png

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

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

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

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

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

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

Все о:  


Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!

Sergey Kuleshov


  • http://intensedebate.com/people/sigizmund Roman A. Kirillov

    Великолепный текстовый редактор, работая с который просто забываешь о том что он есть — сосредатачиваясь целиком и полностью на своей задаче.

  • http://intensedebate.com/people/b166ar Влад Gorohovsky

    через 15 минут про это будет пост

  • http://macosxhints.ru Vetinary

    В несколько заходов пытался начать пользоваться этим редактором (задачи: PHP, XML, XSLT, CSS), но так и не подружился с ним. Видимо, его концепция мне не близка. Не хватает, например, прямого редактирования файлов на FTP, не нашёл встроенной поддержки SVN. В результате пришёл к тому, что для моих задач лучше всего подходит Coda.

  • http://intensedebate.com/people/hellra1ser hellra1ser

    жаль что лицензии закончились :-(

  • http://www.pro100m2.ru/ Мавр Евгенич

    А где можно купить или может бесплатно скачать сие чудо для программиста?

  • Alex

    Автор статьи явно не использует его в повседневной работе, для работы с проектами на 10 файлов он подходит, но когда проект большой и большие по размеру файлы, textmate — тормозит жутко, особенно при переключении между рабочими столами.
    Это редактор по типу нотпада — да с кучей бандлов — но смысл в них теряется когда все начинает тормозить.

    • Евгений

       не соглашусь с вами, работаю с различными CMS, где один файл может быть более 10К строк кода)) ни разу тормозов не замечал, но это редактор только для локальной работы, жаль что обновлений сто лет нет, да и ftp нет нормального к нему…

      а так для php, html, css, js самое то

      еще люблю на coda прогить, но это уже когда проект на сервере лежит…)
      вот такие вот дела)

  • Nomail

    Ребята, смотрите шире! Совершенно спокойно работаю удаленно по средствам MacFusion (http://macfusionapp.org/) и ssh (есть так же поддержка ftp). Эта штука маунтит удаленную файловую систему как локальную.

  • Kohver

    Для этого хорошо подходит http://www.expandrive.com/

  • Kohver

    А каким IDE пользуетесь вы?

  • http://macosxhints.ru Vetinary

    А что насчёт просмотра FTP-директорий и редактирования файлов?