Введение в POSIX'ивизм

       

Обзор возможностей


Текстовый редактор joe - типичный представитель консольных редакторов командного стиля, то есть ориентированных не на действие через меню, а на управление с помощью прямых директив. Название его можно перевести примерно как "редактор дядюшки Джо". Он создан Джозефом Алленом (Joseph H. Allen) при участии Ларри Форда (Larry Foard) и Гари Грея (Gary Gray). Это - открытая и бесплатная программа, доступная в исходниках на сайте проекта. Она реализована для всех, насколько я знаю, POSIX-совместимых систем. А некоторые конкретные версии были собраны для Windows всякого рода и даже для DOS.

Запускается joe одноименной командой, можно - с именем файла, предназначенного для редактирования. В случае, если этого имени в природе не имеется, создается новый файл. Кроме этого, при запуске joe можно использовать ряд опций командной строки. Представление о них дает чтение страниц экранной документации (man joe).

Сразу после запуска joe выглядит весьма непрезентабельно: черный экран с белым текстом - и все. Что делать дальше - остается пока неясным. Единственно, строка заголовка в верхней части экрана гласит, что с помощью комбинации клавиш Control+K - H можно вывести на экран систему помощи. И далее пролистывать ее с помощью Escape - . (точка) - вперед или Escape - , (запятая) - назад.

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

Думаю, понятно, что текстовый редактор позволяет вводить текст (в том числе и кириллический) и обеспечивает навигацию по нему, а также редактирование. Последняя осуществляется двояко: либо с помощью собственных клавишных комбинаций (как правило, это Control+литера), о чем подробнее - в следующем разделе, либо - стандартных клавиш управления курсором (стрелок, PageUp, PageDown, End, Home). При этом клавиши эти введут себя обычным (с точки зрения пользователя DOS/Windows) образом, что отнюдь не само собой разумеющееся для консольных Unix-редакторов).


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

Мышь в joe поддерживается стандартным для Unix-консоли образом. То есть она выступает не как указательное устройство, а как средство выделения и копирования текстовых блоков. Это относится как к текстовой консоли, так и к эмуляторам терминалов графического режима.

Разумеется, в соответствие со своим званием joe позволяет и редактирование текстов, то есть: выделение блоков и отдельных знаков, их копирование, перемещение и удаление, форматирование абзацев (центрирование, лево- и правостороннее выравнивание и т.д.), вставку существующих файлов в текущий документ и запись выделенных фрагментов в виде отдельных файлов.

Редактор joe имеет функцию многоуровневой отмены и возврата отмененных операций. Встроенной проверки орфографии нет, однако можно подключить внешнюю программу (такую, как ispell), в том числе и для русскоязычных текстов. Имеются достаточно развитые средства поиска и замены, в том числе с использованием шаблонов и регулярных выражений. Есть возможность создания закладок (Bookmarcs) и перехода к ним, что необходимо при редактировании длинных структурированных документов.

В joe имитируется многооконный режим: поле текущего документа может быть разбито пополам, и далее каждое из них также может делиться сколь угодно дробно (правда, только по горизонтали). Обеспечена также одновременная работа со многими документами, каждый из которых может быть выведен в оконном или полноэкранном виде. Количество одновременно открытых файлов не ограничено ничем, даже, по некоторым сведениям, системной памятью - joe позволяет работать с документами, размер которых превышает объем ВСЕЙ доступной (то есть физической и виртуальной) памяти.


Правда, проверить это на современных машинах несколько затруднительно...

В joe поддерживается собственный макроязык с достаточно прозрачным синтаксисом. Кроме того, имеется режим протоколирования макросов, что позволяет быстро наращивать его возможности.

И вообще, joe - очень настраиваемый редактор. Во-первых, имеется система интерактивной настройки ряда параметров, таких как перенос слов, абзацный отступ и т.д. Правда, установки эти действуют только в текущем сеансе. Для перманентных изменений необходимо редактирование конфигурационного файла. Однако здесь, учитывая возможность встраивания макрокоманд, возможности настроек становятся поистине безграничными.

И наконец, что немаловажно в наших условиях, joe корректно работает с кириллицей. При правильно русифицированной консоли не возникает никаких проблем ни с выводом, ни с вводом символов кириллицы (в том числе, в последних версиях, и с кодировке UTF8). Более того, все клавишные комбинации работают и при латинской, и при русской раскладке клавиатуры. Правда, в последнем случае обычно требуется дополнительное нажатие управляющей клавиши.

Иными словами, joe - вполне развитый и полнофункциональный текстовый редактор общего назначения. Он в равной мере пригоден для эпизодической работы по написанию скриптов, правке конфигурационных файлов и т.д., и для систематического использования при создании длинных структурированных текстов нарративного характера. А наличие языка макрокоманд допускает эффективно применять его и в специальных целях - для разметки html-страниц, верстки документов в TeX, не говоря уже о собственно программировании.


Содержание раздела