Joe: макрокоманды

Если же штатных команд редактора joe оказывается недостаточно, можно прибегнуть к их самостоятельному конструированию. Для чего предназначен внутренний язык макрокоманд. К сожалению, он не описан в экранной документации. Однако получить представление о его синтаксисе и возможностях можно, изучив внимательно конфигурационный файл joerc (о чем подробнее — в следующем разделе).

Кроме того, есть еще один простой и эффективный способ изучения макроязыка, совмещающий приятное с полезным, — режим протоколирования макрокоманд. Включается он комбинацией клавиш Control+K[ (открывающая квадратная скобка), вслед за чем следует ввести номер макроса (от 0 до 9), выступающий как в качестве его имени, так и в роли запускающей клавиши. Далее просто выполняются необходимые действия (например, вводится требуемый тэг html), после чего запись макроса останавливается комбинацией Control+K] (закрывающая квадратная скобка). Для воспроизведения запротоколированного макроса используется комбинация Control+K# (где # — указанный при записи номер макрокоманды).

С помощью протоколирования макросов можно автоматизировать ввод наиболее нужных для конкретной задачи символов и их наборов, не предусмотренных штатным образом. Например, основных тэгов html для разметки web-страниц, таких, как параграф, разрыв строки, заголовки нескольких уровней, таблицы и списки. А заодно — и изучить синтаксис языка. Поскольку в joe предусмотрена возможность помещения запротоколированных в данном сеансе макросов в тело существующего или нового документа (комбинацией клавиш Meta+D).

Запротоколировав пару-тройку макросов, можно легко составить представление о командах языка: в первой колонке записи для каждого макроса следуют разделяемые запятыми (без пробелов!) зарезервированные команды и вводимые символьные значения в парных кавычках. Далее идут разделенные табулятором клавишные комбинации (^K 0Control+K0), закрепленные за макросами, и имена макросов. Последние в оригинале представлены в виде Macro 0, Macro 1 и т.д. Но ничего не запрещает при редактировании придать им осмысленные имена. Да и сами макросы могут быть отредактированы должным образом в текстовом редакторе (том же joe, например).

Легко сообразить, что за один прием можно запротоколировать не более 10 макросов (маркированных цифрами от 0 до 9). Более того, они будут действовать только в течении данного сеанса: по выходе из редактора записанные макросы сами собой не сохраняются. Что, казалось бы, напрочь обесценивает данную возможность.

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

Выясняется, что за воспроизведение макросов отвечает конфигурационный файл ~/.joerc, о котором подробнее будет сказано на следующей странице. И потому достаточно поместить (с помощью Meta+D или из текстового файла) в соответствующую его секцию (какую — также скажу позднее) созданные команды, чтобы обеспечить их исполнение во всех последующих сеансах.

Более того, назначенные по умолчанию клавишные комбинации не являются обязательными. И их можно вручную заменить на любые другие, из числа не использованных ранее. После чего можно начать протоколирование команд сначала, нумеруя их от 0 до 9. Затем — повторить процедуру встраивания их ~/.joerc, и так далее, сколько потребуется (или до исчерпания комбинаторики клавиш). А поскольку количество незадействованных в joe клавишных комбинаций очень велико, то реально число созданных пользователем макрокоманд ограничивается только его фантазией и потребностями.

Таким образом можно легко автоматизировать процесс ввода тэгов HTML или XML, конструкций JavaScript, скриптов командной среды, разметки документов TeX, а также все, что потребуется впредь. Превратив joe в специализированный инструмент для решения почти любых задач.

. .