[TextMate] Самый желанный редактор для программиста


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 лицензий для раздачи, но я вынужден отдать их всем, кто написал для меня статьи, в том числе и Сергею — автору этого поста. Даже себе не осталось.

Автор: svyatogor

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Комментариев (14) »

  1. ShadowX

    Опубликованно February 24, 2009 @ 13:58

    Возможно для не профессиональной работы годятся подобные ухищрения. Но с IDE (Integrated Development Environment) им не сравнится. Например, для Java использую IntelliJ IDEA – Mac среди Java IDE.
    ИМХО, для тех же профессионалов больше подойдет Vim (или Emacs)
    P.S. UNIX – это способ жизни ;)

  2. Roman A. Kirillov

    Опубликованно February 24, 2009 @ 13:32

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

  3. Lomov Sergey

    Опубликованно February 24, 2009 @ 13:49

    А как там с лицензиями на PathFinder?

  4. Влад Gorohovsky

    Опубликованно February 24, 2009 @ 13:55

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

  5. svyatogor

    Опубликованно February 24, 2009 @ 14:01

    Зависит от того на чем вы пишете. Для Java, абсолютно согласен, IDEA незаменима. Для Objective-C может быть XCode и подойдет лучше. А вот для работы с ruby, perl, python, php и многими другими вполне хватает такого редактора.

    Vim я использовал много лет. Использую и сейчас, если работаю по SSH. Но все же он не столь эргономичен, даже после длительной настройки.

  6. ShadowX

    Опубликованно February 24, 2009 @ 14:07

    Сразу после установки любого UNIX Vim абсолютно безконкурентен, возможно за исключением OS X (они почемуто ставят модифицированные утилиты GNU). Мышь в нем нужна только для копирования, а это мегаплюс :)
    Для языков аля PHP больше Vim ничего не нужно, потому как даже Zend не может показать методы собственных класов 2-го уровня, о чем тут еще говорить?

  7. Vetinary

    Опубликованно February 24, 2009 @ 14:14

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

  8. svyatogor

    Опубликованно February 24, 2009 @ 15:06

    SVN (а также CVS, Git и другие) поддерживаются после установки Project+

  9. Loststylus

    Опубликованно February 24, 2009 @ 16:14

    К сожалению, Gedit намного удобнее. Хотели сделать что-то простое, а получился неудобный перегруженный комбайн. Обидно.

  10. Vetinary

    Опубликованно February 24, 2009 @ 18:57

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

  11. hellra1ser

    Опубликованно February 25, 2009 @ 11:00

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

  12. Arwen

    Опубликованно February 26, 2009 @ 15:13

    Блоггерам и журналистам интернет-изданий на заметку: кроме всего прочего и далёкого от не-программистов, TextMate поддерживает синтаксис Markdown, разработанный Джоном Грубером. Вся его прелесть в том, что текст, написанный с использованием элементов этого языка очень легко читать и править. Чем-то похоже на язык, который используется для разметки статей в Википедии. Если на блоге стоит соответствующий плагин, он потом эти символы преобразует в самый правильный и валидный html. :)

    Вот вам ссылочка: http://daringfireball.net/projects/markdown/synta...

  13. fen

    Опубликованно March 3, 2009 @ 15:53

    пльзую его – всё нравится, вот только явно не хватает ему функции split =(

  14. Мавр Евгенич

    Опубликованно March 5, 2009 @ 06:25

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

Написать комментарий

Имя: (обязательно)

E-mail: (обязательно)

Сайт:

Текст комментария: