О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

19.08.2008

Текстовый редактор lpe

2002 г

Этот редактор назван его автором - Хрисом Смитом (Chris Smith), Lightweight programmer's editor. Что применительно к случаю я перевел бы как Легковесный Редактор для Программистов. Под легковесностью, вероятно, понимается его компактность и нетребовательность. Поскольку возможности его вполне достаточны для несложной работы.

При запуске редактора командой lpe без параметров перед глазами возникает почти пустой экран с предложением нажать Control-E для получения помощи. Что отнюдь не лишне - никакого меню нет и в помине, все действия осуществляются только комбинациями клавишь. Узнать назначение которых, кроме как из Help'а, неоткуда. Хотя нет, имеется еще и info-файл, вызываемый командой

  info lpe

и содержащий еще более подробные сведения.

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

Так что, дабы не заниматься отсебятиной, я просто прокомментирую содержание info-файла, когда это покажется мне необходимым.

И так, он может быть запущен следующим образом:

  lpe [ --help | --version ]

или

  lpe [--mode ] [ -- ] file

В первом случае выдается справка по использованию lpe или сведения о его версии. Во втором - вызывается соответствующий файл; если таковой не существует - создается пустой документ.

Под модой здесь понимается установка языкового режима, например, htmlmode. Хотя режим автоматически устанавливается для файлов соответствующих типов. По крайней мере, для html-страниц - безошибочно, с включением соответствующей подсветки.

Знак -- не опция, а указание на то, что следующим аргументом будет имя файла. Без всего этого вполне можно обойтись, вызывая редактор просто

  lpe имя_файла

Далее следует собственно описание клавигных комбинаций. При этом такие клавиши, как стрелки упраления курсором, Home, End, Backspace, Delete действуют обычным образом, хотя и дублируются некоторыми комбинациями.

Командные клавиши

       Ctrl-Q Перемещает курсор в начало строки (альтернатива Home)

Ctrl-W Перемещает курсор в конец строки (альтернатива End)

Ctrl-R Прокрутка на один экран вверх (альтернатива PgUp)

Ctrl-T Прокрутка на один экран вниз (альтернатива PgDn)

Ctrl-O Перемещение к предыдущему слову

Ctrl-P Перемещение к следующему слову

Ctrl-K Истребление текущей линии

Ctrl-Y или Ctrl-U
Вставка уничтоженной (командой Ctrl-K) линии в позицию курсора

Ctrl-S Поиск последовательности символов в файле

Ctrl-A Поиск следующего вхождения

Ctrl-F Ctrl-O
Открытие нового файла с заменой текущего буфера

Ctrl-F Ctrl-S
Запись буфера на диск
Ctrl-F Ctrl-A
Запись буфера под другим именем

Ctrl-F Ctrl-R
Считывание файла и его вставка в позиции курсора

Ctrl-F Ctrl-E
Pretend that a buffer hasn't been modified

Ctrl-B Ctrl-S
Установка режима текущего буфера

Ctrl-B Ctrl-T
Переключение между жесткой и мягкой табуляцией в текущем буфере

Ctrl-B Ctrl-A
Включение/выключение автоматического отступа

Ctrl-G Ctrl-A
Переход к первой линии буфера

Ctrl-G Ctrl-S
Переход к последней линии буфера

Ctrl-G Ctrl-G
Переход к указанной линии буфера

Ctrl-N Ctrl-R
Ввод значения для повторяющейся команды

Ctrl-N Ctrl-T
Многократное повторение команды.

Ctrl-N Ctrl-O
Начало или конец записи макроса

Ctrl-N Ctrl-P
Исполнение последнего записанного макроса

Ctrl-V Ctrl-V
Исполнение всего буфера как команды среды Shell

Ctrl-V Ctrl-A

Ctrl-V Ctrl-S
То же для awk и sed, соответственно

Ctrl-V Ctrl-B
Исполнение нескольких строк как последовательности
команд Shell

Ctrl-V Ctrl-D

Ctrl-V Ctrl-F
Аналогично для awk и sed, соответственно

Ctrl-D Вызов внутреннего отладчика

Ctrl-X Запись буфера на диск и выход


Выход без записи на диск

Ctrl-Z Suspend the editor and escape to a prompt

Ctrl-L Очистка и перерисовка целого экрана

означает клавишу прерывания для вашего терминала.
Обычно это Ctrl-C, но может быть иной в других терминалах.
С другой стороны, Ctrl-Z заменяет нормальную клавишу останова
терминала.

МОДУЛИ
Хотя lpe невелик, он может осуществлять многие сложные действия
в зависимости от режима буфера. Режим буфера зависит от
языка программирования текущего буфера.

Все языковые модули должны находиться в каталоге хранения
модулей. Этот каталог устанавливается как переменная среды
LPE_MOD ULE_PATH в разделенном двоеточиями списке каталогов
(подобно PATH). Если переменная не установлена, lpe просматривает
каталоги на предмет модулей в следующем порядке:

$HOME/.lpe /usr/local/lib/lpe /usr/lib/lpe /etc/lpe

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

К сожалению, я не обранужил способа сохранять запротоколированные макросы для последующего использования. И вообще никакой возможности сохранения настроек в редакторе lpe не обнаружилось. Отсутствовал даже какой-либо конфигурационный файлик вроде lperc. Нет также режима автоматического переноса слов, что крайне неудобно при создании нарративных документов.

И потому сфера применеия lpe - крайне ограничена. Так, я использую его для быстрой (и несложной) правки кода html-страниц. Другая область - создание несложных скриптов для командной среды. И, наконец, lpe более чем достаточен для правки конфигурационных файлов.