Посты с тагом дизайн интерфейсов
15
мая
2008

E: Весь пафос TextMate для Windows

E — это уже не первый текстовый редактор для Windows, чьи разработчики вдохновились маковским TextMate. Еще в прошлом году я писал про InType — свободный, но очень неспешно развивающийся проект. По большому счету, от E я тоже не ожидал сенсационных открытий, но все же установил пробную версию. И не напрасно.

Интерфейс

Сразу бросается в глаза необычная деталь — строгая ориентация на управление с клавиатуры. Привычный для Windows-приложений тулбар начисто отсутствует, а почти для всех команд меню определены горячие клавиши. В том числе это касается сниппетов, о которых пойдет речь отдельно.

The Power of Textmate on Windows
В действительности, UI E начисто лишен пафоса, что приятно

С моей точки зрения, такое решение очень правильно, т.к. при работе с текстом я и без того отдаю большее предпочтение клавиатуре, чем мыши, а нагромождение разноцветных кнопок создает лишний визуальный шум. Тем не менее, отказ от привычных кнопок copy/paste найдет признание со стороны далеко не любого пользователя. Слишком радикальная перемена.

Поиск по регулярным выражениям

В общем и целом, интерфейс радует обоснованным минимализмом.

Функциональность

Базовые возможности Е довольно обширны. Встречаются даже оригинальные детали для редакторов такого класса:

  • Можно выделять произвольное количество текстовых блоков (примерно как в MS Office). Для текстового редактора это чуть ли не уникальная фича. Даже в EmEditor такого нет. Так же возможно выделение вертикальных текстовых блоков, но это уже не так интересно и много где реализовано.
  • Предусмотрена довольно оригинальная возможность копирования ввода. Она может быть использована для набора одинаковых фрагментов текста в разных частях файла. Понять, как это работает и в каких случаях применимо, проще всего посмотрев скринкаст на официальном сайте.
  • Поддержка пакетов TextMate (bundles).
  • Множество других, менее значимых, но полезных возможностей: табы (куда же без них); поиск по регулярным выражениям (оу, йез!); поддержка любых кодировок, включая Unicode; автозавершение слов; списки to-do, автоматически генерируемые из комментариев в тексте; группировка файлов в проекты; редактор тем, с возможностью сохранения цветовых схем; встроенный web-preview; синтаксическая подсветка для какого угодно синтаксиса; интеграция с системами контроля ревизий через TortoiseSVN и TortoiseCVS.

Пакеты

Теперь, самое интересное.

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

В E дела со сниппетами обстоят иначе. На первый взгляд, меню Bundles, в котором они собраны, действительно удручает своей перегруженностью. Тем не менее, его содержимое организовано весьма разумно.

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

Например, автозавершение слов и синтаксических конструкций, комментирование или раскомментирование выделенного фрагмента, выполнение скрипта (или только текущей строки) интерпретатором, визуальный выбор цвета (очень удобно для вставки HEX-кодов в CSS), алфавитная сортировка строк. Я привел только несколько примеров для иллюстрации разброса возможных операций; перечислять все бессмысленно, т.к. их несколько сотен.

Интересным моментом является то, что горячие клавиши для идентичных по смыслу команд из разных пакетов часто совпадают, а их выбор происходит автоматически, в зависимости от активной синтаксической схемы. Так Ctrl-R запускает скрипт, вне зависимости, на Python он написан или на Perl. Благодаря этому, придется запоминать меньше сочетаний клавиш и реже ковыряться в меню мышью.

Как уже было сказано, набор пакетов можно расширять теми, что уже разработаны для TextMate. Их можно найти в SVN-репозитории на официальном сайте проекта. На время написания этого текста, там находится 153 пакета с самой разной специализацией. Есть, например, bundle для работы со списками задач в стиле GTD.

Некоторые минусы

Чтобы сделать этот обзор более полным, перечислю так же некоторые отрицательные детали.

  • Сразу после установки, E ставит перед фактом собственной необходимости в cygwin и автоматически скачивает целый ворох пакетов (включая довольно тяжелые Perl, Python и Ruby). Все вместе они занимают порядка 30-40 Mb. Было бы разумно иметь возможность скачивать все сразу, в виде одного файла. Иначе полноценная установка становится зависимой от наличия доступа в интернет.
  • Процесс загрузки бандлов занимает несколько секунд после старта программы. Все реализовано довольно грамотно (начинать работать с текстом можно не дожидаясь окончания загрузки), но от текстового редактора все же обычно ждешь большей прыти. Все-таки, не Фотошоп.

В сущности, недостатки незначительны и простительны.

Да, чуть не забыл. $34.95.

Ссылки по теме

16
апреля
2008

Переключение задач в Windows

Недавно обнаружил, что в Windows есть довольно немалое количество способов переключения между активными задачами, помимо привычного Alt-Tab.

Alt-Tab — Самая популярная комбинация клавиш для переключения задач, перешедшая еще из Windows 3.1. Однократное нажатие активизирует окно, которое было открыто до текущего. Многократное нажатие выполниет перелистывание нескольких окон сразу, при чем порядо следования окон динамически меняется, в соответствии с предыдущим правилом. Последовательность однократных нажатий Alt-Tab будет просто циклически переключать два окна, в не зависимости от того, сколько всего их открыто.

Учитывая, что это самый распространенный способ переключения, можно предположить, что многим он нравится. Мне всегда казался странным. Когда окон становится открыто более 2, и переключение между ними необходимо выполнять относительно редко, бывает сложно держать в памяти их последовательность. Соответственно, быстрые нажатия Alt-Tab (когда не всматриваешься в окно task switcher) приводят к непредсказуемому результату.

Alt-Shift-Tab — не очень удобная (для пальцев) комбинация клавиш, аналогичная предыдущей, но с инвертированной последовательностью переключения. Иногда ее использование может уменьшить количество повторных нажатий Tab для открытия нужного приложения.

Alt-Esc — альтернативный способ, работающий немного более предсказуемо, чем Alt-Tab. При нажатии список задач не открывается, а сразу происходит перелистывание окон в аналогичном порядке. В отличии от Alt-Tab, зацикливания не происходит. И последовательностью однократных нажатий Alt-Esc можно пролистать весь список окон.

Если окон открыто много, способ оказывается тоже далеким от совершенства: вызывает много лишнего «движения» перед глазами.

Пожалуй, самым близким к совершенству способом переключения, остаются горячие клавиши, которые можно назначать ярлыкам. Это фиксированная и оттого всегда предсказуемая привязка конкретных окон к конкретным кнопкам. Тем не менее, способ далеко не всегда пригоден к использованию. Часто бывает, что по каким-то внешним (не всегда ясным) причинам горячие клавиши ярлыков просто не работают. Иногда это случается, когда фокус ввода находится где-то совсем не там, где положено, либо комбинации приложения каким-то образом перекрывают и конфликтуют с глобальными. Кроме того, иногда вместо переключения происходит повторное открытие приложения.

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

На мой взгляд, самым удобным способом переключения окон была бы динамическая привязка списка активных приложений в панели задач к клавишам Ctrl-1..9. Когда количество открытых окон меньше 6, номер легко определяется визуально. Если же окон больше, может помочь отображение номера для каждого в той же панели задач (либо переход к обычному режиму последовательного перелистывания).

Номера окон должны быть достаточно крупными и контрастными, чтобы их не приходилось искать глазами. Простое добавление цифры в заголовок (тем же шрифтом) не подоёдет. Возможны так же вариации на тему speed dial.

При написании этого поста, я случайно наткнулся на историю появления первого переключателя между задачами, — программе Switcher, изложенную ее автором — Энди Харцфельдом. Было довольно любопытно почитать его рассказ о том, как эта функция попала в Windows и OS X (это был 1984 год). Вот, кстати, благодарственное письмо Гейтса разработчику: Читать далее →