Редакторы текстов. Часть 2.

Программируемый редактор ТЕСО. Предназначен для редактирования больших текстов, в которых необходимы усложненные способы поиска и повторение одинаковых сложных редакторских функций. Поэтому кроме расширения номенклатуры редакторских команд (в основном в части команд поиска и различных приемов задания образца поиска) введены команды управления выполнением командной строки, в частности перехода и условного выполнения. Условия включают арифметико-логические выражения над числовыми аргументами и переменными редактирования (число символов в буфере, номер позиции указателя и т. д.), а также содержимым одного из 36 Q-регистров. Каждый Q-регистр может хранить целое число и символьную строку; вторая часть является аналогом буфера сохранения и макробуфера редактора EDIT, в ней может находиться, в частности, командная строка редактора — макрокоманда.

Таким образом, набор команд ТЕСО позволяет заранее составлять программы редактирования, включающие циклы, условные выполнения, подпрограммы (макрокоманды). Для хранения переменных используются первые (числовые) части Q-регистров; операция присваивания выполняется с помощью команды загрузки соответствующего регистра. 25 переменных редактирования, имеющих закрепленные обозначения, позволяют полностью определить ситуацию, сложившуюся к данному моменту, и предпринять соответствующие действия.

Программа ТЕСО может храниться как отдельный файл, затем загружена в текстовый буфер и выполнена в том числе в пакетном режиме. Следует отметить сложность освоения языка ТЕСО; поэтому использование редактора ТЕСО в подготовке программ, состоящих, как правило, из модулей небольшого размера, ограничено.

Редактор К13. Может быть использован как в ФОДОС, так и в МДОС, это — его немаловажное преимущество. Редактор постоянно «демонстрирует» на экране 24 строки редактируемого файла. Набор этих строк зависит от положения курсора в файле, и при его перемещениях текст автоматически сдвигается в требуемую строку.
Редакторские возможности ЮЗ значительно шире, чем редакторов EDIT и EDI. В основном они сводятся к следующему:

  • наличие четырех буферов сохранения: символа, слова, строки и выбранной области;
  • структуризация текста на страницы и секции, причем ограничители (или размеры) страницы и секции можно определять пользователю (по умолчанию ограничитель страницы — FF, а размер секции 16 строк);
  • введение перемещения не только на символ и строку, но и на слово;
  • осуществление поиска контекста в любую сторону от положения курсора;
  • дополнительная возможность ограничения зоны поиска текста и фиксации положения курсора после окончания поиска в начале или конце контекста;
  • возможность удаления частей слов и строк (перед и за курсором) с сохранением или удалением разделителя строк;
  • поиск контекста с автоматической его заменой содержимым буфера сохранения;
  • поддержка структурированных языков, наличие средств для выделения вложенности операторов.

Большинство редакторских функций выполняется меньшим числом нажатий клавиш по сравнению с консольными редакторами. Команды редактора К13, определяющие режимы поиска, разделители страниц и т. д. и функции (вводятся с помощью нажатия одной или нескольких клавиш), могут быть объединены в группы, аналогичные EDIT. Вторая группа (ввод-вывод) относится к дополнительным файлам; редактор К13 не использует понятия «текстовый буфер» для основных файлов, поэтому операции чтения и записи выполняются автоматически при перемещении курсора. Таким образом, одновременно могут быть открыты два входных (основной и дополнительный) и два выходных файла. Основные входной и выходной файлы объявляются стандартным для операционных систем образом, т. е. таким, как они задаются для всех системных обрабатывающих программ.