>. Выбранный текст попадает в конец
псевдо-файла "#" и может быть просмотрен (<ARG>#<USE>) или
выбран заново:
<PICK>
- выбрать для вставки текущую строку; по умолчанию вво-
дится клавишей `9'.
<ARG>n<PICK>
- выбрать n строк, начиная с текущей;
<ARG>указание_курсором<PICK>
<ARG>$имя<PICK>
- выбрать указанный курсором участок файла (смотри опи-
сание <ARG>).
Выбранный текст заносится в так называемый "PICK"-буфер
(буфер вставки);
<ARG>>имя<PICK>
- запомнить выбранный последней командой <PICK> текст в
переменной "имя".
- 22 -
23
Для вставки текста в файл используются команды:
<PUT>
- (по умолчанию `2'`9'): выбранный ранее текст вставля-
ется в текущее место файла. При этом, если была выб-
рана группа строк целиком, происходит вставка строк,
иначе текст вставляется в середину имеющихся строк
(которые для этого раздвигаются);
<ARG><PUT>
- работает аналогично <PUT>, но вместо "PICK"-буфера
используется "CLOSE"-буфер, в котором запоминается
текст, исключенный из файла последней командой
<CLOSE>;
<ARG>$имя<PUT>
- текст из переменной "имя" ("имя" - одна буква) встав-
ляется в файл и становится текущим буфером вставки.
3.9. Работа с окнами (<M-PORT> и <CH-PORT>)
На экране терминала можно создавать новые "окна" и унич-
тожать старые. Для этого служит команда <M-PORT> (создать
"окно", клавиши `2'`4'). Новое "окно" создается в уже имею-
щемся путем деления его на две части. Если курсор находится
в первой строке "окна", то оно делится по вертикали. Если
курсор стоит в первой колонке окна, то деление происходит по
горизонтали. В остальных случаях выдается сообщение об
ошибке. Примеры приведены на рисунках 4 и 5.
____________________________________________________________
Деление по горизонтали
До команды После команды
------------------ ------------------
! ! ! старое !
! ! ! окно !
!*-курсор ! !----------------!
! старое ! ! новое !
! окно ! ! окно !
! ! ! !
! ! ! !
------------------ ------------------
Рис. 4
____________________________________________________________
- 23 -
24
____________________________________________________________
Деление по вертикали
До команды После команды
------------------ -------------------
! *-курсор ! ! !! !
! ! ! старое !! новое !
! ! ! !! !
! старое ! ! окно !! окно !
! окно ! ! !! !
! ! ! !! !
! ! ! !! !
------------------ -------------------
Рис 5.
____________________________________________________________
Максимальное число окон на экране равно 10.
Для создания и уничтожения окон используются следующие
команды:
<M-PORT>
- создается новое окно, и в нем высвечивается файл
/usr/lib/re.std;
<ARG>имя<M-PORT>
- Создается новое окно, и в нем высвечивается файл
"имя". В том, что касается нового файла, команда
полностью аналогична команде <USE>;
<ARG><M-PORT>
- уничтожить окно, созданное последним.
Если один файл изображен сразу в нескольких окнах, изме-
нения в нем будут высвечиваться одновременно во всех окнах.
Для перехода из окна в окно служит команда:
<CH-PORT>
(по умолчанию `0')
Нескольких окон целесообразно использовать при сравнении
файлов, частичном копировании одного файла в другой, при
работе с файлами диагностик об ошибках и в ряде других слу-
чаев.
- 24 -
25
3.10. Использование макрокоманд
Последовательность команд редактора вместе с любым текс-
том, если их приходится часто повторять, может быть присво-
ена "переменной" редактора red. Для записи макроопределения
служит команда:
<ARG>d имя<RETURN>
(имя - одна буква). Редактор выдаст приглашение на ввод:
Mac:
Введенный в ответ текст и команды редактора запишутся в
переменную имя. Редактор отображает команды на экране в
виде пары символов, их кодировка приведена в приложении 2.
Признаком конца ввода является команда <EXIT> (клавиши
<LineFeed><Del>), для отмены ошибочных символов или команд
используется команда <B-SPACE> (клавиша <Del> или <Back-
Space>).
Для выполнения макрокоманды достаточно ввести:
<LineFeed>$имя
то есть последовательно нажать клавиши <LineFeed> (или
<ПС>), "$" и малую латинскую букву, которой именуется пере-
менная. Редактор подставляет содержимое переменной вместо
ввода с терминала. Выполнение макро прерывается, если при
выполнении записанной в макро операции поиска не найден
искомый текст. При необходимости можно переопределить
какую-либо функциональную клавишу терминала как вызов опре-
деленной макрокоманды.
3.11. Переопределение клавиатуры
В редакторе имеется возможность изменить действие функци-
ональных и управляющих клавиш терминала. При этом клавиша
может обозначать как любую команду редактора, так и выполне-
ние макрокоманды. Для этого служит команда:
<ARG>k<RETURN>
Редактор запрашивает:
Enter <new key>:
- 25 -
26
Нажмите переопределяемую клавишу и затем клавишу <Del>
(<Забой>).
Редактор запрашивает:
Enter <command> or <macro name>:
Введите команду, имя макропеременной (малую латинскую
букву) или признак макропеременной "$". Если введена команды
редактора, то при нажатии переопределяемой клавиши будет
вводиться эта команда. Если введено имя переменной, значе-
нием которой должна быть макрокоманда, то клавиша будет
вызывать эту макрокоманду. Если был введен символ "$", то
клавиша станет признаком макропеременной вместо комбинации
<Line Feed>$ (<Перевод Строки>$).
3.12. Выполнение команд-фильтров (команда <EXEC>)
Такие полезные операции над текстами, как сортировка,
выравнивание параграфов текста, структуризация текстов прог-
рамм на "Си" и другие, выполняются командами операционной
системы ДЕМОС. Редактор red позволяет использовать такие
команды для переработки части файла с помощью команды
<EXEC>. Например, для контекстной замены int на short в оче-
редных 10 строках файла служит команда:
<ARG>10l rpl "int" "short"<EXEC>
После этого в очередных 10 строках произойдет замена текста
int на short, которую выполнит команда ДЕМОС "rpl", на-
писанная специально для red. Можно вызывать любые команды,
которые могут использоваться как фильтр. Например:
cb - улучшение читаемости программы на Си,
sort - сортировка
Команда <EXEC> может выполняться в одном из следующих форма-
тов:
<ARG><ч.п> <команда> <с.п.><EXEC>
либо
<ARG>-<ч.c.><команда> <с.п.><EXEC>
либо
<ARG><ч.с.>l <команда> <с.п.><EXEC>
где <ч.п.> - число параграфов,
<ч.с.> - число строк,
<с.п.> - список параметров.
- 26 -
27
Причем <число строк> или <список параметров> могут отсутст-
вовать.
Первый (необязательный) аргумент формата определяет число
строк либо параграфов за текущей строкой в файле, которые
будут обрабатываться командой. Параграфы - это группы непус-
тых строк, разделенные одной или несколькими пустыми стро-
ками. Целое неотрицательное число указывает число парагра-
фов. если число отрицательно или за ним следует буква l -
оно указывает число строк. Если первый аргумент опущен, то
имеется в виду 1 параграф текста. Таким образом, -15 или 15l
задают 15 строк текста, а 2 - 2 параграфа.
Второй аргумент - имя команды операционной системы, за
которым могут идти ее аргументы, разделенные пробелами. Для
включения пробелов в аргумент можно использовать кавычки ".
Действие <EXEC> состоит в том, что вызывается указанная
команда операционной системы с указанными параметрами. На
стандартный ввод ей подаются заданные строки. Если команда
выполнилась нормально, то указанные строки в файле заменя-
ются на стандартный вывод команды. Старые строки помещаются
в CLOSE-буфер.
3.12.1. Контекстная замена (rpl)
Программа rpl вызывается командой <EXEC> и требует два
аргумента. Она заменяет в указанных строках все вхождения
первого аргумента на второй аргумент. Если какой-либо аргу-
мент содержит пробелы, он должен быть взят в кавычки. rpl
распознает регулярные выражения в первом аргументе по тем же
правилам, что и редактор ed в контексте поиска, с тем отли-
чием, что вместо символа . используется @ для обозначения
одного произвольного символа.
Например, команда:
<ARG>100l rpl "^ *" " "<EXEC>
исключит все группы пробелов в начале следующих 100 строк.
для обозначения самих символов $, &, @, ^, * перед ними
необходимо ставить \ (обратную черту).
3.12.2. Примеры использования команды <EXEC>
С помощью команды <EXEC> можно вставить в любое место
файла группу файлов, набрав:
<ARG>0 cat <список файлов><EXEC>
- 27 -
28
Если при вводе программ на языке Си в отдельных функциях
не оставлять пустых строк, а сами функции разделять пустыми
строками, то можно улучшить читаемость текста любой функции,
подведя курсор к ее началу и набрав:
<ARG>cb<EXEC>
3.12.3. Выход из редактора (<EXIT>)
Для того, чтобы окончить работу в red, записав все изме-
нения в архив, служит команда:
<EXIT>
По умолчанию это две клавиши: <LineFeed>,<Del>. Если нужно
выйти из редактора, не записывая изменения в архив, необхо-
димо набрать:
<ARG>a<EXIT>
где "a" - строчная латинская буква "a".
Команду <EXIT> можно ввести и так: <ARG>q<RETURN>, для
выхода без записи нужно набрать: <ARG>qa<RETURN>.
3.13. Прерывание выдачи. Аварийный выход из редактора
Операционная система интерпретирует символы CTRL/S,
CTRL/Q (приостановить передачу, продолжить передачу),
CTRL/N, CTRL/O (русский регистр, латинский регистр), а также
символ "прерывание" (interrupt) - CTRL/C. Одиночное нажатие
символа "прерывание" прерывает вывод на экран или операцию
контекстного поиска и переводит редактор в режим ввода пара-
метров. Двойное нажатие символа "прерывание" в случае, если
редактор не успел перейти в режим ввода параметров, приводит
к аварийному завершению работы без записи измененных файлов.
В режиме приема с клавиатуры символ "прерывание" интерпрети-
руется как команда <ARG>. В режиме повторения прерванного
сеанса нажатие символа "прерывание" прерывает повторение и
- 28 -
29
переводит редактор в режим ввода с терминала.
4. ДИАГНОСТИЧЕСКИЕ СООБЩЕНИЯ
Сообщения редактора высвечиваются в нижней строке экрана.
Они делятся на сообщения о режимах работы и сообщения об
ошибках. В зависимости от установленной версии редактора
диагностики выдаются на русском или английском языке. Ниже
будут приводиться оба варианта диагностики.
Сообщения о режимах работы
Ред:<имя>
use:<имя>
- идет чтение файла <имя>;
Зап:<имя>
save:<имя>
- идет запись файла <имя>;
+Поиск:<текст>
-Поиск:<текст>
+search:<текст>
-search:<текст>
- идет поиск текста <текст> вперед или назад;
Выполнение.
executing..
- идет выполнение внешней команды;
Режим вставки
insertmode
- установлен режим вставки;
Указание курсором
cursor defined
- идет указание участка текста для команд <PICK> или
<CLOSE>;
Создать(y/n)? имя
Create (y/n)? имя
- если вы действительно хотите создать новый файл
<имя>, то введите "y";
Строки указаны меткой
lines defined by tag
- предыдущей командой указана часть строк файла (от
курсора до запомненной в переменной метки), которая
будет передана очередной команде как параметр;
Прямоугольник указан меткой
square defined by tag
- предыдущей командой указана часть файла (от курсора
- 29 -
30
до запомненной в переменной метки), которая будет пере-
дана очередной команде как параметр;
Часть строки указана меткой
columns defined by tag
- предыдущей командой указана часть строки (от курсора
до метки, присвоенной переменной), которая будет пере-
дана очередной команде как параметр.
Сообщения об ошибках :
Аргумент должен быть числом
argument must be numeric
- аргумент команды должен быть числовым;
Аргумент должен быть положительным
argument must be positive
- аргумент должен быть положительным;
Буфер вставок пуст
nothing in the pick buffer
- введена команда <PUT>, но ни разу не выполнялась
команда <PICK>;
Close буфер пуст
nothing in the close buffer
- введена команда <ARG><PUT>, но ни разу не выполнялась
команда <CLOSE>;
А что искать?
nothing to search for
- не задан образ для контекстного поиска;
Текст не найден
search key not found
- образ для поиска не найден;
Здесь нельзя создать окно
can't put a window there
- при создании нового "окна" курсор должен быть в пер-
вой строке "окна" или на первой колонке;
Не могу создать столько
can't make any more ports
- превышено допустимое число "окон" (10);
Слишком много файлов
too many files...
- превышено максимально допустимое число файлов (10);
Вы не можете изменить этот файл
you can't modify this file
- файл нельзя изменять, так как запись в него
- 30 -
31
запрещена.
Имеется еще несколько редких диагностик, но они, как пра-
вило, самоочевидны.
5. ПОСТАНОВКА РЕДАКТОРА red. ПОДКЛЮЧЕНИЕ НОВЫХ ТИПОВ ТЕРМИ-
НАЛОВ
Редактор red ничего не знает о терминалах, на которых он
работает. Необходимую для работы информацию он получает от
операционной системы. Операционная система знает тип терми-
нала и устанавливает его в переменную TERM интерпретатора
SHELL или CSH.
Свойства терминалов описаны в файле /etc/termcap. Терми-
налы характеризуются набором функциональных возможностей,
кодами команд и способом выполнения различных операций.
Список терминалов, описание которых уже занесено в систему,
приведен в начале файла "/etc/termcap".
Элементы файла termcap состоят из символьных полей, раз-
деленных символом ":"(двоеточие). Первый элемент указывает
имена, под которыми терминал известен в системе. имена раз-
делены символом (вертикальная черта). Как правило, последнее
имя является полным названием терминала, а предыдущие имена
- его сокращениями, которые используются, в частности, в
файле /etc/ttytype. Подробную информацию можно найти в сле-
дующих разделах оперативной документации по ОС ДЕМОС:
environment (5),
tset (1)
ttys (5)
ttytype (5)
termcap (5)
Ниже повторяется описание формата описания терминалов
termcap.
5.1. Описание терминала в базе описаний терминалов
Описание каждого типа терминалов в файле /etc/termcap
состоит из ряда полей, разделенных символом ":". Если описа-
ние переносится на новую строку, то в конце предыдущей ста-
вится ":\", и новая строка начинается с символа ":".
Все характеристики имеют двухсимвольные коды.
Характеристика может иметь одну из трех форм записи:
:<имя>:
- характеристика описывает наличие или отсутствие
какой-либо возможности (логический тип);
- 31 -
32
:<имя>#<число>:
- это численная характеристика (например, размер
экрана);
:<имя>=<задержка><строка>:
- значением является строка символов, причем <задержка>
может отсутствовать.
В последнем случае за "=" следует необязательное число,
которое указывает длительность задержки при выполнении
команды в миллисекундах. затем следует строка символов в
закодированной форме. Элементы строки могут представляются в
одной из четырех форм:
1) \<символ> - обозначает один из следующих символов, не
представимых графически:
\r - код 015 (return);
\n - код 012 (line feed);
\t - код 011 (tab);
\b - код 010 (backspace);
\f - код 014;
2) \nnn,
где "nnn" -восьмеричные цифры - символ с кодом "nnn";
3) ^<буква> - управляющий символ CTRL+<буква>, например,
"^C" обозначает символ "003";
4) <любой символ>, кроме ":", "\", "^", обозначает сам
себя.
Символ "пусто" кодируется как \200.
Таблица 1. Основные характеристики терминалов
--------------------------------------------
| n имя тип обя- только значение |
| хар зат. для red характеристики |
|------------------------------------------|
| 1 co чис + - число колонок в строке |
| li чис + - число строк на экране |
|------------------------------------------|
- 32 -
33
Продолжение таб. 1
--------------------------------------------
| n имя тип обя- только значение |
| хар зат. для red характеристики |
|------------------------------------------|
| 2 am лог - - терминал имеет автома- |
| тический перевод строк |
|------------------------------------------|
| 3 bs лог - - код 010 вызывает возврат|
| на 1 позицию назад |
| rt стр - - возврат на начало строки|
| bc стр - - код "курсор назад", |
| если не 010 |
| cm стр - - адресация курсора * |
| cl стр + - очистка экрана |
| do стр * - курсор вниз |
| up стр * - курсор вверх |
| nd стр * - курсор вправо |
| ho стр * - курсор в начало экрана |
|------------------------------------------|
| 3 is стр - - инициализация терминала |
| fs стр - + конец работы в редакторе|
| возврат в начальное |
| состояние |
| cu стр - + код "светлый квадрат" |
| (как правило, \177.) |
| nb лог - + нет звукового сигнала |
|------------------------------------------|
| 4 UC лог - - терминал имеет только |
| прописные буквы |
| LC лог - - терминал имеет прописные|
| строчные буквы |
| CY лог - + терминал имеет русские и|
| латинские буквы |
|------------------------------------------|
| 5 al стр - - вставка пустой строки |
| dl стр - - исключение строки |
| ic стр - - вставить символ |
| dc стр - - исключить символ |
| cd стр - - очистить экран от курсор|
| до конца |
| ce стр - - очистка конца строки |
| sr стр - - прокрутить текст вниз |
| sf стр - - прокрутить текст вверх |
| ns лог - - нет сдвижки текста |
| (нет roll) |
| cs стр - - изменение области про- |
| крутки текста* |
|------------------------------------------|
- 33 -
34
Продолжение таб. 1
--------------------------------------------
| n имя тип обя- только значение |
| хар зат. для red характеристики |
|------------------------------------------|
| 6 kd стр + - код клавиши стрелка вниз|
| ku стр + - -- // -- стрелка вверх |
| kl стр + - -- // -- стрелка влево |
| kr стр + - -- // -- стрелка вправо|
| kh стр + - -- // -- "home" |
|------------------------------------------|
| 7 коды клавиш, используе-|
| мых для выполнения |
| команд редактора: |
| kN - - команда <-PAGE> |
| kP - - команда <+PAGE> |
| kB - - команда <B-TAB> |
| kF - - команда <+LINE> |
| kR - - команда <-LINE> |
|------------------------------------------|
| 8 Коды, вырабатываемые |
| функциональными клави- |
| шами PF1 - PF5 |
| Трактуются они так: |
| k1 стр - - команда <ARG> |
| k2 стр - - команда <OPEN> |
| k3 стр - - команда <CLOSE> |
| k4 стр - - команда <INSERT> |
| k5 стр - - команда <DCHAR> |
|------------------------------------------|
| 9 f. стр - + Коды, вырабатываемые |
| f- стр - + дополнительной функцио-|
| f0 стр - + нальной клавиатурой. |
| f1 |
| .. ... . . |
| f9 стр - + |
|------------------------------------------|
|10 tc=<имя> означает, что остальные ха-|
| рактеристики совпадают с|
| характеристиками терминала |
| <имя> |
| <имя>@ отмена характеристики |
| <имя> |
| hR стр - + Имя файла с кратким |
| описанием команд |
| (выдается пользователю)|
|------------------------------------------|
- 34 -
35
Продолжение таб. 1
--------------------------------------------
| n имя тип обя- только значение |
| хар зат. для red характеристики |
|------------------------------------------|
|11 Gs стр - + Включение псевдографи- |
| ческого набора символов|
| Ge стр - + Выключение псевдографи-|
| ки |
| Gt стр - + Набор символов псевдо- |
| графики |
--------------------------------------------
В таблице 1 приведены основные характеристики, используе-
мые редактором red. Полное описание возможных характеристик
имеется в документации по операционной системе.
Характеристики разбиты на 11 групп.
Группа 1.
Описывает размеры экрана терминала;
Группа 2.
Описывает способ управления курсором на экране. Самый
сложный элемент группы - характеристика "cm". Если у
терминала нет возможности прямой адресации курсора на
экране, то для работы red необходимы характеристики,
помеченные символом "*" в графе "обязательный", в про-
тивном случае редактор может обойтись и без них. Харак-
теристика "am" означает, что при достижении конца
строки курсор автоматически переходит на начало следую-
щей строки;
Группа 3.
Описывает инициализацию дисплея и дополнительные его
характеристики. "cu" - это код символа, используемого
редактором для маркировки положения курсора в "окне".
если он не указан, используется символ "@". Рекоменду-
ется указывать "cu=\177", если только терминал умеет
отображать этот код как светлый квадрат;
Группа 4.
Возможности терминала по отображению символов. если
"UC", то терминал должен работать в режиме "lcase"; Эти
характеристики использует система, а не редактор, для
установки флагов терминала.
Группа 5.
Дополнительные редактирующие возможности терминала;
характеристика "cs" аналогична "cm" по работе с
- 35 -
36
параметрами - номерами верхней и нижней строки области
сдвига текста.
Группа 6.
Коды, вырабатываемые основными управляющими клавишами;
Группа 7.
Коды, вырабатываемые функциональными клавишами, которые
предполагается использовать в соответствии с указанной
трактовкой.
Группа 8.
Коды, вырабатываемые функциональными клавишами PF1 -
PF5 или клавишами, их заменяющими.
Группа 9.
Коды, вырабатываемые дополнительной функциональной кла-
виатурой с надписями "0"-"9", "-", ".".
Группа 10.
Позволяет описывать один терминал через другой, если
они похожи. например:
vt340:cm@:UC:KI:LC@:nb:tc=vdt52100c
Группа 11
Описывает работу с псевдографическими символами, кото-
рые используются для рисования рамок. Gs включает режим
вывода псевдографических символов, Ge его выключает.
Строка Gt описывает кодирование псевдографических сим-
волов в режиме псевдографики: каждый символ строки
соответствует одному символу псевдографики в следующем
порядке:
- горизонтальная черта;
- большой закрашенный квадрат;
- вертикальная черта;
- левый нижний угол;
- нижнее "T";
- правый нижний угол;
- левое "T";
- пересечение двух линий;
- правое "T";
- верхний левый угол;
- верхнее "T";
- верхний правый угол;
- стрелка вниз;
- стрелка вверх;
- стрелка влево;
- стрелка вправо;
если в строке задано меньше символов, не заданные
- 36 -
37
символы заменяются на соответствующие им обычные сим-
волы КОИ-8.
5.2. Адресация курсора.
Способ адресации курсора для данного терминала описыва-
ется характеристикой "cm" строчного типа. Кроме символов,
которые просто передаются на терминал, в строке могут встре-
чаться специальные последовательности вида %X, которые при
выводе заменяются на номер колонки или номер строки по пра-
вилам, определяемым символом X (аналогично работает формат в
printf). Если рассматривать строку "cm" как формат вывода,
то параметрами функции вывода являются номер строки и пози-
ции, на которые должен быть установлен курсор. Коды типа
"%" имеют следующий смысл:
%d - то же, что и для программы "printf", причем нумера-
ция колонок и столбцов начинается с 0;
%2 - эквивалентно %2d;
%3 - эквивалентно %3d;
%. - эквивалентно %c;
%+x - сложить код символа "x" с соответствующим значением
(номером строки или колонки), затем выдать ее по
"%.";
%r - обратный порядок номеров строки и позиции. вывод не
производится;
%i - номера строки и колонки отсчитывать с 1 (вместо 0);
%% - дает один символ "%".
Например, для терминала "VDT-52100" адресация курсора
описывается следующей строкой:
cm=3^a%.%.
Терминалы, которые используют коды вида "%.", должны
иметь характеристики "bs" (или "bc") и "up", то есть иметь
возможность перемещать курсор назад на 1 позицию и вверх на
одну строку. Это необходимо, так как редактор не выдает
при адресации курсора символы \t, \n, ^D и \r: система может
изменить или уничтожить эти символы.
В данном разделе очень кратко были изложены правила опи-
сания терминала в файле /etc/termcap. Обычно при появлении
нового терминала бывает целесообразно для его описания
использовать описание какого-либо другого терминала либо
- 37 -
38
использовать краткое описание с параметром "tc=...". Однако
скорее всего все ваши терминалы уже имеются в /etc/termcap,
что избавит от необходимости разбираться в не очень простых
правилах описания терминалов.
- 38 -
39
ПРИЛОЖЕНИЕ 1. Справочная информация по red
Редактор red предназначен для редактирования и просмотра
файлов в экранном режиме. Он позволяет просматривать на
экране терминала один или несколько файлов, редактировать
файлы с использованием управляющих клавиш терминала и команд
редактора, переносить информацию из файла в файл и проводить
другие операции редактирования.
Редактор вызывается с помощью команды red в одном из сле-
дующих форматов:
red [-ключи] имя_файла [номер_строки]
Начать редактирование файла "имя_файла", установив окно
на строку номер_строки; если номер не указан, высвечи-
вается начало файла.
red [-ключи]
Продолжить редактирование с того состояния, в котором
был завершен предыдущий сеанс работы с данного терми-
нала.
red [-ключи] -
Повторить сеанс редактирования файлов после сбоя сис-
темы или редактора.
red [-ключи] -r файл_протокол
Повторить сеанс редактирования, считав протокол из ука-
занного файла.
Ввод команд осуществляется с помощью функциональных кла-
виш терминала. На большинстве терминалов для этого исполь-
зуется дополнительная цифровая клавиатура, расположенная
справа для основной. Особое значение имеет клавиша `2',
которая изменяет значение следующей клавиши. Если дополни-
тельная цифровая клавиатура отсутствует или не имеет режима
генерации управляющих кодов, используется клавиша <перевод
строки> (<LineFeed>), например вместо `1' вводят
<LineFeed>`1', а вместо `2'`4' - <LineFeed><LineFeed>`4'.
Краткое описание команд
В описании приведены: краткое название команды, полное
название команды, ввод с клавиатуры (через "," перечислены
возможные варианты ввода, запись ^C означает CTRL+C):
<ARG> - ВВОД АРГУМЕНТА: `1', <LineFeed><Пробел>
Начало ввода аргумента. Аргументом может быть строка
символов или указание области на экране терминала
(область определяется начальным и конечным положениями
курсора и представляет собой либо прямоугольник на
экране, если начальная и конечная колонки не совпадают,
либо несколько строк, если начальная и конечная колонки
- 39 -
40
совпадают). Ввод аргумента завершается вводом команды,
к которой этот аргумент относится.
<TAB> - ТАБУЛЯЦИЯ: <TAB>
<B-TAB> - ТАБУЛЯЦИЯ НАЗАД: `.', ^B
передвинуть курсор на следующую (предыдущую) позицию
табуляции.
<GOTO> - ПЕРЕЙТИ НА: `4'
Без аргумента - переход на начало файла. Аргумент -
номер строки; пустой аргумент - конец файла.
<LEFT> - СДВИГ ВЛЕВО: `2'<курсор влево>
<RIGHT> - СДВИГ ВПРАВО: `2'<курсор вправо>
Сдвиг экрана влево/вправо.
<+PAGE> - ЛИСТ ВПЕРЕД: `7', <NextScr>
<-PAGE> - ЛИСТ НАЗАД: `2'`7', <PrevScr>
Возможный аргумент - число страниц, на которые экран
перемещается по текущему файлу.
<+LINE> - СТРОКА ВПЕРЕД: <Forward>, ^T
<-LINE> - СТРОКА НАЗАД: <Backward>, ^W
Аргумент - число строк; пустой аргумент - вывести теку-
щую строку в верхнюю (нижнюю) строку окна (перемещением
окна по файлу). Клавиши <Forward> и <Backward> (над-
писи могут быть и иными) обозначены в описании терми-
нала в системе как "kF" и "kR".
<+SEARCH> - ПОИСК ВПЕРЕД: `3', ^R
<-SEARCH> - ПОИСК НАЗАД: `2'`3', ^E
Аргумент - текст, который нужно найти в файле.
<INSERT> - РЕЖИМ ВСТАВКИ: `5', <PF4>
Включает/выключает режим вставки;
<D-CHAR> - ИСКЛЮЧИТЬ СИМВОЛ: `6', ^U
<TRUNC> - ИСКЛЮЧИТЬ КОНЕЦ СТРОКИ: `1'`6'
<OPEN> - РАЗДВИНУТЬ: `8', <PF2>
Вставить пустую строку; аргумент - число строк либо
область на экране, в которую нужно вставить пробелы.
<CLOSE> - УБРАТЬ: `2'`8', <PF3>
Убрать строки либо область на экране. Убранная инфор-
мация попадает в буфер убранных строк.
<GET> - ВЗЯТЬ: `9', ^F
Запомнить строки либо область на экране.
<PUT> - ПОЛОЖИТЬ: `2'`9', ^G
Взятая ранее информация помещается в текущее место на
- 40 -
41
экране. Команда с пустым аргументом используется,
чтобы вставить информацию из буфера убранных строк.
<SPLIT> - РАЗРЕЗАТЬ СТРОКУ НА ДВЕ
Отрабатывается по команде <OPEN> с пустым аргументом.
(`1'<PF2>).
<JOIN> - СКЛЕИТЬ СТРОКИ
Отрабатывается по команде <CLOSE> с пустым аргументом.
(`1'<PF3>).
<SAVE> - ЗАПИСЬ: `2' `-', ^V
Аргумент - имя файла (если не совпадает со старым).
<USE> - РЕДАКТИРОВАТЬ: `-', ^D
Команда без аргумента переходит к альтернативному файлу
(по умолчанию - файл подсказок).
<M-PORT> - СОЗДАТЬ ОКНО: `2'`4'
Аргумент - имя файла, который будет высвечиваться в
новом окне. Курсор должен быть либо в крайней левой
позиции экрана либо на верхней строке экрана. Команда
с пустым аргументом выполняет отмену последнего заве-
денного окна.
<CH-PORT> - СМЕНИТЬ ОКНО: `0'
сменить текущее окно (если открыто более чем одно
окно).
<EXEC> - ВЫПОЛНИТЬ: `2'`0', ^P
Аргумент: "[число[l] ] команда [аргументы]". "команда"
выполняется как фильтр над текстом в очередных "число"
абзацах (если указана буква l, то строках) файла.
Абзац - группа непустых строк файла, разделенная одной
или несколькими пустыми строками.
<EXIT> - ВЫХОД: <Перевод строки><Забой>
Аргумент "a" блокирует запись измененных файлов.
Команда может также вводиться как <АРГ>q[a]<Возврат
каретки>.
- Запомнить в переменную: <АРГ>>И<Команда>
Где И - имя макропеременной (одна буква), <Команда> -
либо <Возврат каретки> (тогда запоминается текущее
место в файле), либо <GET> (запоминается буфер
вставки), либо <CLOSE> (запоминается буфер убранных
строк). Макро затем можно использовать в командах
<GOTO>, <PUT>, а также в командах, аргументом которых
может быть область на экране (в этом случае вводится
область от текущего положения курсора до запомненной
метки), указав в качестве аргумента "$И".
- 41 -
42
- ВВОД МАКРО: <АРГ>d И<ВК>
Концом ввода служит команда <ВЫХОД>.
- ВЫПОЛНЕНИЕ МАКРО: <ПС>$И
- ПЕРЕОПРЕДЕЛЕНИЕ КЛАВИШИ: <АРГ>k<ВК>
При этом, если в ответ на запрос переопределяемой
команды введено имя макро (одна буква), при нажатии
этой клавиши выполняется данное макро.
<ESCAPE> - ПРИЗНАК НЕТЕКСТОВОГО СИМВОЛА: `2'`0', ^A
По этой команде вводится специальный символ и следующий
управляющий символ вводится в файл, а не трактуется
редактором как команда.
Далее приведена кодировка команд для наиболее распростра-
ненных терминалов. Если на вашем терминале обозначения на
управляющей клавиатуре не совпадают с ними, необходимо уточ-
нить кодирование команд редактора у системных программистов.
На схемах клавиатуры сверху написано название команды, кото-
рая исполняется по данной клавише. Посередине - надпись на
клавише. Снизу написано название команды, которая исполня-
ется, если предварительно нажать клавишу `2'.
____________________________________________________________
Команды для Электроника-15-ИЭ-0013
управляющая клавиатура цифровая клавиатура
-------