>. Выбранный текст попадает в конец псевдо-файла "#" и может быть просмотрен (<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 управляющая клавиатура цифровая клавиатура -------