>. Vybrannyj tekst popadaet v konec
psevdo-fajla "#" i mozhet byt' prosmotren (<ARG>#<USE>) ili
vybran zanovo:
<PICK>
- vybrat' dlya vstavki tekushchuyu stroku; po umolchaniyu vvo-
ditsya klavishej `9'.
<ARG>n<PICK>
- vybrat' n strok, nachinaya s tekushchej;
<ARG>ukazanie_kursorom<PICK>
<ARG>$imya<PICK>
- vybrat' ukazannyj kursorom uchastok fajla (smotri opi-
sanie <ARG>).
Vybrannyj tekst zanositsya v tak nazyvaemyj "PICK"-bufer
(bufer vstavki);
<ARG>>imya<PICK>
- zapomnit' vybrannyj poslednej komandoj <PICK> tekst v
peremennoj "imya".
- 22 -
23
Dlya vstavki teksta v fajl ispol'zuyutsya komandy:
<PUT>
- (po umolchaniyu `2'`9'): vybrannyj ranee tekst vstavlya-
etsya v tekushchee mesto fajla. Pri etom, esli byla vyb-
rana gruppa strok celikom, proishodit vstavka strok,
inache tekst vstavlyaetsya v seredinu imeyushchihsya strok
(kotorye dlya etogo razdvigayutsya);
<ARG><PUT>
- rabotaet analogichno <PUT>, no vmesto "PICK"-bufera
ispol'zuetsya "CLOSE"-bufer, v kotorom zapominaetsya
tekst, isklyuchennyj iz fajla poslednej komandoj
<CLOSE>;
<ARG>$imya<PUT>
- tekst iz peremennoj "imya" ("imya" - odna bukva) vstav-
lyaetsya v fajl i stanovitsya tekushchim buferom vstavki.
3.9. Rabota s oknami (<M-PORT> i <CH-PORT>)
Na ekrane terminala mozhno sozdavat' novye "okna" i unich-
tozhat' starye. Dlya etogo sluzhit komanda <M-PORT> (sozdat'
"okno", klavishi `2'`4'). Novoe "okno" sozdaetsya v uzhe imeyu-
shchemsya putem deleniya ego na dve chasti. Esli kursor nahoditsya
v pervoj stroke "okna", to ono delitsya po vertikali. Esli
kursor stoit v pervoj kolonke okna, to delenie proishodit po
gorizontali. V ostal'nyh sluchayah vydaetsya soobshchenie ob
oshibke. Primery privedeny na risunkah 4 i 5.
____________________________________________________________
Delenie po gorizontali
Do komandy Posle komandy
------------------ ------------------
! ! ! staroe !
! ! ! okno !
!*-kursor ! !----------------!
! staroe ! ! novoe !
! okno ! ! okno !
! ! ! !
! ! ! !
------------------ ------------------
Ris. 4
____________________________________________________________
- 23 -
24
____________________________________________________________
Delenie po vertikali
Do komandy Posle komandy
------------------ -------------------
! *-kursor ! ! !! !
! ! ! staroe !! novoe !
! ! ! !! !
! staroe ! ! okno !! okno !
! okno ! ! !! !
! ! ! !! !
! ! ! !! !
------------------ -------------------
Ris 5.
____________________________________________________________
Maksimal'noe chislo okon na ekrane ravno 10.
Dlya sozdaniya i unichtozheniya okon ispol'zuyutsya sleduyushchie
komandy:
<M-PORT>
- sozdaetsya novoe okno, i v nem vysvechivaetsya fajl
/usr/lib/re.std;
<ARG>imya<M-PORT>
- Sozdaetsya novoe okno, i v nem vysvechivaetsya fajl
"imya". V tom, chto kasaetsya novogo fajla, komanda
polnost'yu analogichna komande <USE>;
<ARG><M-PORT>
- unichtozhit' okno, sozdannoe poslednim.
Esli odin fajl izobrazhen srazu v neskol'kih oknah, izme-
neniya v nem budut vysvechivat'sya odnovremenno vo vseh oknah.
Dlya perehoda iz okna v okno sluzhit komanda:
<CH-PORT>
(po umolchaniyu `0')
Neskol'kih okon celesoobrazno ispol'zovat' pri sravnenii
fajlov, chastichnom kopirovanii odnogo fajla v drugoj, pri
rabote s fajlami diagnostik ob oshibkah i v ryade drugih slu-
chaev.
- 24 -
25
3.10. Ispol'zovanie makrokomand
Posledovatel'nost' komand redaktora vmeste s lyubym teks-
tom, esli ih prihoditsya chasto povtoryat', mozhet byt' prisvo-
ena "peremennoj" redaktora red. Dlya zapisi makroopredeleniya
sluzhit komanda:
<ARG>d imya<RETURN>
(imya - odna bukva). Redaktor vydast priglashenie na vvod:
Mac:
Vvedennyj v otvet tekst i komandy redaktora zapishutsya v
peremennuyu imya. Redaktor otobrazhaet komandy na ekrane v
vide pary simvolov, ih kodirovka privedena v prilozhenii 2.
Priznakom konca vvoda yavlyaetsya komanda <EXIT> (klavishi
<LineFeed><Del>), dlya otmeny oshibochnyh simvolov ili komand
ispol'zuetsya komanda <B-SPACE> (klavisha <Del> ili <Back-
Space>).
Dlya vypolneniya makrokomandy dostatochno vvesti:
<LineFeed>$imya
to est' posledovatel'no nazhat' klavishi <LineFeed> (ili
<PS>), "$" i maluyu latinskuyu bukvu, kotoroj imenuetsya pere-
mennaya. Redaktor podstavlyaet soderzhimoe peremennoj vmesto
vvoda s terminala. Vypolnenie makro preryvaetsya, esli pri
vypolnenii zapisannoj v makro operacii poiska ne najden
iskomyj tekst. Pri neobhodimosti mozhno pereopredelit'
kakuyu-libo funkcional'nuyu klavishu terminala kak vyzov opre-
delennoj makrokomandy.
3.11. Pereopredelenie klaviatury
V redaktore imeetsya vozmozhnost' izmenit' dejstvie funkci-
onal'nyh i upravlyayushchih klavish terminala. Pri etom klavisha
mozhet oboznachat' kak lyubuyu komandu redaktora, tak i vypolne-
nie makrokomandy. Dlya etogo sluzhit komanda:
<ARG>k<RETURN>
Redaktor zaprashivaet:
Enter <new key>:
- 25 -
26
Nazhmite pereopredelyaemuyu klavishu i zatem klavishu <Del>
(<Zaboj>).
Redaktor zaprashivaet:
Enter <command> or <macro name>:
Vvedite komandu, imya makroperemennoj (maluyu latinskuyu
bukvu) ili priznak makroperemennoj "$". Esli vvedena komandy
redaktora, to pri nazhatii pereopredelyaemoj klavishi budet
vvodit'sya eta komanda. Esli vvedeno imya peremennoj, znache-
niem kotoroj dolzhna byt' makrokomanda, to klavisha budet
vyzyvat' etu makrokomandu. Esli byl vveden simvol "$", to
klavisha stanet priznakom makroperemennoj vmesto kombinacii
<Line Feed>$ (<Perevod Stroki>$).
3.12. Vypolnenie komand-fil'trov (komanda <EXEC>)
Takie poleznye operacii nad tekstami, kak sortirovka,
vyravnivanie paragrafov teksta, strukturizaciya tekstov prog-
ramm na "Si" i drugie, vypolnyayutsya komandami operacionnoj
sistemy DEMOS. Redaktor red pozvolyaet ispol'zovat' takie
komandy dlya pererabotki chasti fajla s pomoshch'yu komandy
<EXEC>. Naprimer, dlya kontekstnoj zameny int na short v oche-
rednyh 10 strokah fajla sluzhit komanda:
<ARG>10l rpl "int" "short"<EXEC>
Posle etogo v ocherednyh 10 strokah proizojdet zamena teksta
int na short, kotoruyu vypolnit komanda DEMOS "rpl", na-
pisannaya special'no dlya red. Mozhno vyzyvat' lyubye komandy,
kotorye mogut ispol'zovat'sya kak fil'tr. Naprimer:
cb - uluchshenie chitaemosti programmy na Si,
sort - sortirovka
Komanda <EXEC> mozhet vypolnyat'sya v odnom iz sleduyushchih forma-
tov:
<ARG><ch.p> <komanda> <s.p.><EXEC>
libo
<ARG>-<ch.c.><komanda> <s.p.><EXEC>
libo
<ARG><ch.s.>l <komanda> <s.p.><EXEC>
gde <ch.p.> - chislo paragrafov,
<ch.s.> - chislo strok,
<s.p.> - spisok parametrov.
- 26 -
27
Prichem <chislo strok> ili <spisok parametrov> mogut otsutst-
vovat'.
Pervyj (neobyazatel'nyj) argument formata opredelyaet chislo
strok libo paragrafov za tekushchej strokoj v fajle, kotorye
budut obrabatyvat'sya komandoj. Paragrafy - eto gruppy nepus-
tyh strok, razdelennye odnoj ili neskol'kimi pustymi stro-
kami. Celoe neotricatel'noe chislo ukazyvaet chislo paragra-
fov. esli chislo otricatel'no ili za nim sleduet bukva l -
ono ukazyvaet chislo strok. Esli pervyj argument opushchen, to
imeetsya v vidu 1 paragraf teksta. Takim obrazom, -15 ili 15l
zadayut 15 strok teksta, a 2 - 2 paragrafa.
Vtoroj argument - imya komandy operacionnoj sistemy, za
kotorym mogut idti ee argumenty, razdelennye probelami. Dlya
vklyucheniya probelov v argument mozhno ispol'zovat' kavychki ".
Dejstvie <EXEC> sostoit v tom, chto vyzyvaetsya ukazannaya
komanda operacionnoj sistemy s ukazannymi parametrami. Na
standartnyj vvod ej podayutsya zadannye stroki. Esli komanda
vypolnilas' normal'no, to ukazannye stroki v fajle zamenya-
yutsya na standartnyj vyvod komandy. Starye stroki pomeshchayutsya
v CLOSE-bufer.
3.12.1. Kontekstnaya zamena (rpl)
Programma rpl vyzyvaetsya komandoj <EXEC> i trebuet dva
argumenta. Ona zamenyaet v ukazannyh strokah vse vhozhdeniya
pervogo argumenta na vtoroj argument. Esli kakoj-libo argu-
ment soderzhit probely, on dolzhen byt' vzyat v kavychki. rpl
raspoznaet regulyarnye vyrazheniya v pervom argumente po tem zhe
pravilam, chto i redaktor ed v kontekste poiska, s tem otli-
chiem, chto vmesto simvola . ispol'zuetsya @ dlya oboznacheniya
odnogo proizvol'nogo simvola.
Naprimer, komanda:
<ARG>100l rpl "^ *" " "<EXEC>
isklyuchit vse gruppy probelov v nachale sleduyushchih 100 strok.
dlya oboznacheniya samih simvolov $, &, @, ^, * pered nimi
neobhodimo stavit' \ (obratnuyu chertu).
3.12.2. Primery ispol'zovaniya komandy <EXEC>
S pomoshch'yu komandy <EXEC> mozhno vstavit' v lyuboe mesto
fajla gruppu fajlov, nabrav:
<ARG>0 cat <spisok fajlov><EXEC>
- 27 -
28
Esli pri vvode programm na yazyke Si v otdel'nyh funkciyah
ne ostavlyat' pustyh strok, a sami funkcii razdelyat' pustymi
strokami, to mozhno uluchshit' chitaemost' teksta lyuboj funkcii,
podvedya kursor k ee nachalu i nabrav:
<ARG>cb<EXEC>
3.12.3. Vyhod iz redaktora (<EXIT>)
Dlya togo, chtoby okonchit' rabotu v red, zapisav vse izme-
neniya v arhiv, sluzhit komanda:
<EXIT>
Po umolchaniyu eto dve klavishi: <LineFeed>,<Del>. Esli nuzhno
vyjti iz redaktora, ne zapisyvaya izmeneniya v arhiv, neobho-
dimo nabrat':
<ARG>a<EXIT>
gde "a" - strochnaya latinskaya bukva "a".
Komandu <EXIT> mozhno vvesti i tak: <ARG>q<RETURN>, dlya
vyhoda bez zapisi nuzhno nabrat': <ARG>qa<RETURN>.
3.13. Preryvanie vydachi. Avarijnyj vyhod iz redaktora
Operacionnaya sistema interpretiruet simvoly CTRL/S,
CTRL/Q (priostanovit' peredachu, prodolzhit' peredachu),
CTRL/N, CTRL/O (russkij registr, latinskij registr), a takzhe
simvol "preryvanie" (interrupt) - CTRL/C. Odinochnoe nazhatie
simvola "preryvanie" preryvaet vyvod na ekran ili operaciyu
kontekstnogo poiska i perevodit redaktor v rezhim vvoda para-
metrov. Dvojnoe nazhatie simvola "preryvanie" v sluchae, esli
redaktor ne uspel perejti v rezhim vvoda parametrov, privodit
k avarijnomu zaversheniyu raboty bez zapisi izmenennyh fajlov.
V rezhime priema s klaviatury simvol "preryvanie" interpreti-
ruetsya kak komanda <ARG>. V rezhime povtoreniya prervannogo
seansa nazhatie simvola "preryvanie" preryvaet povtorenie i
- 28 -
29
perevodit redaktor v rezhim vvoda s terminala.
4. DIAGNOSTICHESKIE SOOBSHCHENIYA
Soobshcheniya redaktora vysvechivayutsya v nizhnej stroke ekrana.
Oni delyatsya na soobshcheniya o rezhimah raboty i soobshcheniya ob
oshibkah. V zavisimosti ot ustanovlennoj versii redaktora
diagnostiki vydayutsya na russkom ili anglijskom yazyke. Nizhe
budut privodit'sya oba varianta diagnostiki.
Soobshcheniya o rezhimah raboty
Red:<imya>
use:<imya>
- idet chtenie fajla <imya>;
Zap:<imya>
save:<imya>
- idet zapis' fajla <imya>;
+Poisk:<tekst>
-Poisk:<tekst>
+search:<tekst>
-search:<tekst>
- idet poisk teksta <tekst> vpered ili nazad;
Vypolnenie.
executing..
- idet vypolnenie vneshnej komandy;
Rezhim vstavki
insertmode
- ustanovlen rezhim vstavki;
Ukazanie kursorom
cursor defined
- idet ukazanie uchastka teksta dlya komand <PICK> ili
<CLOSE>;
Sozdat'(y/n)? imya
Create (y/n)? imya
- esli vy dejstvitel'no hotite sozdat' novyj fajl
<imya>, to vvedite "y";
Stroki ukazany metkoj
lines defined by tag
- predydushchej komandoj ukazana chast' strok fajla (ot
kursora do zapomnennoj v peremennoj metki), kotoraya
budet peredana ocherednoj komande kak parametr;
Pryamougol'nik ukazan metkoj
square defined by tag
- predydushchej komandoj ukazana chast' fajla (ot kursora
- 29 -
30
do zapomnennoj v peremennoj metki), kotoraya budet pere-
dana ocherednoj komande kak parametr;
CHast' stroki ukazana metkoj
columns defined by tag
- predydushchej komandoj ukazana chast' stroki (ot kursora
do metki, prisvoennoj peremennoj), kotoraya budet pere-
dana ocherednoj komande kak parametr.
Soobshcheniya ob oshibkah :
Argument dolzhen byt' chislom
argument must be numeric
- argument komandy dolzhen byt' chislovym;
Argument dolzhen byt' polozhitel'nym
argument must be positive
- argument dolzhen byt' polozhitel'nym;
Bufer vstavok pust
nothing in the pick buffer
- vvedena komanda <PUT>, no ni razu ne vypolnyalas'
komanda <PICK>;
Close bufer pust
nothing in the close buffer
- vvedena komanda <ARG><PUT>, no ni razu ne vypolnyalas'
komanda <CLOSE>;
A chto iskat'?
nothing to search for
- ne zadan obraz dlya kontekstnogo poiska;
Tekst ne najden
search key not found
- obraz dlya poiska ne najden;
Zdes' nel'zya sozdat' okno
can't put a window there
- pri sozdanii novogo "okna" kursor dolzhen byt' v per-
voj stroke "okna" ili na pervoj kolonke;
Ne mogu sozdat' stol'ko
can't make any more ports
- prevysheno dopustimoe chislo "okon" (10);
Slishkom mnogo fajlov
too many files...
- prevysheno maksimal'no dopustimoe chislo fajlov (10);
Vy ne mozhete izmenit' etot fajl
you can't modify this file
- fajl nel'zya izmenyat', tak kak zapis' v nego
- 30 -
31
zapreshchena.
Imeetsya eshche neskol'ko redkih diagnostik, no oni, kak pra-
vilo, samoochevidny.
5. POSTANOVKA REDAKTORA red. PODKLYUCHENIE NOVYH TIPOV TERMI-
NALOV
Redaktor red nichego ne znaet o terminalah, na kotoryh on
rabotaet. Neobhodimuyu dlya raboty informaciyu on poluchaet ot
operacionnoj sistemy. Operacionnaya sistema znaet tip termi-
nala i ustanavlivaet ego v peremennuyu TERM interpretatora
SHELL ili CSH.
Svojstva terminalov opisany v fajle /etc/termcap. Termi-
naly harakterizuyutsya naborom funkcional'nyh vozmozhnostej,
kodami komand i sposobom vypolneniya razlichnyh operacij.
Spisok terminalov, opisanie kotoryh uzhe zaneseno v sistemu,
priveden v nachale fajla "/etc/termcap".
|lementy fajla termcap sostoyat iz simvol'nyh polej, raz-
delennyh simvolom ":"(dvoetochie). Pervyj element ukazyvaet
imena, pod kotorymi terminal izvesten v sisteme. imena raz-
deleny simvolom (vertikal'naya cherta). Kak pravilo, poslednee
imya yavlyaetsya polnym nazvaniem terminala, a predydushchie imena
- ego sokrashcheniyami, kotorye ispol'zuyutsya, v chastnosti, v
fajle /etc/ttytype. Podrobnuyu informaciyu mozhno najti v sle-
duyushchih razdelah operativnoj dokumentacii po OS DEMOS:
environment (5),
tset (1)
ttys (5)
ttytype (5)
termcap (5)
Nizhe povtoryaetsya opisanie formata opisaniya terminalov
termcap.
5.1. Opisanie terminala v baze opisanij terminalov
Opisanie kazhdogo tipa terminalov v fajle /etc/termcap
sostoit iz ryada polej, razdelennyh simvolom ":". Esli opisa-
nie perenositsya na novuyu stroku, to v konce predydushchej sta-
vitsya ":\", i novaya stroka nachinaetsya s simvola ":".
Vse harakteristiki imeyut dvuhsimvol'nye kody.
Harakteristika mozhet imet' odnu iz treh form zapisi:
:<imya>:
- harakteristika opisyvaet nalichie ili otsutstvie
kakoj-libo vozmozhnosti (logicheskij tip);
- 31 -
32
:<imya>#<chislo>:
- eto chislennaya harakteristika (naprimer, razmer
ekrana);
:<imya>=<zaderzhka><stroka>:
- znacheniem yavlyaetsya stroka simvolov, prichem <zaderzhka>
mozhet otsutstvovat'.
V poslednem sluchae za "=" sleduet neobyazatel'noe chislo,
kotoroe ukazyvaet dlitel'nost' zaderzhki pri vypolnenii
komandy v millisekundah. zatem sleduet stroka simvolov v
zakodirovannoj forme. |lementy stroki mogut predstavlyayutsya v
odnoj iz chetyreh form:
1) \<simvol> - oboznachaet odin iz sleduyushchih simvolov, ne
predstavimyh graficheski:
\r - kod 015 (return);
\n - kod 012 (line feed);
\t - kod 011 (tab);
\b - kod 010 (backspace);
\f - kod 014;
2) \nnn,
gde "nnn" -vos'merichnye cifry - simvol s kodom "nnn";
3) ^<bukva> - upravlyayushchij simvol CTRL+<bukva>, naprimer,
"^C" oboznachaet simvol "003";
4) <lyuboj simvol>, krome ":", "\", "^", oboznachaet sam
sebya.
Simvol "pusto" kodiruetsya kak \200.
Tablica 1. Osnovnye harakteristiki terminalov
--------------------------------------------
| n imya tip obya- tol'ko znachenie |
| har zat. dlya red harakteristiki |
|------------------------------------------|
| 1 co chis + - chislo kolonok v stroke |
| li chis + - chislo strok na ekrane |
|------------------------------------------|
- 32 -
33
Prodolzhenie tab. 1
--------------------------------------------
| n imya tip obya- tol'ko znachenie |
| har zat. dlya red harakteristiki |
|------------------------------------------|
| 2 am log - - terminal imeet avtoma- |
| ticheskij perevod strok |
|------------------------------------------|
| 3 bs log - - kod 010 vyzyvaet vozvrat|
| na 1 poziciyu nazad |
| rt str - - vozvrat na nachalo stroki|
| bc str - - kod "kursor nazad", |
| esli ne 010 |
| cm str - - adresaciya kursora * |
| cl str + - ochistka ekrana |
| do str * - kursor vniz |
| up str * - kursor vverh |
| nd str * - kursor vpravo |
| ho str * - kursor v nachalo ekrana |
|------------------------------------------|
| 3 is str - - inicializaciya terminala |
| fs str - + konec raboty v redaktore|
| vozvrat v nachal'noe |
| sostoyanie |
| cu str - + kod "svetlyj kvadrat" |
| (kak pravilo, \177.) |
| nb log - + net zvukovogo signala |
|------------------------------------------|
| 4 UC log - - terminal imeet tol'ko |
| propisnye bukvy |
| LC log - - terminal imeet propisnye|
| strochnye bukvy |
| CY log - + terminal imeet russkie i|
| latinskie bukvy |
|------------------------------------------|
| 5 al str - - vstavka pustoj stroki |
| dl str - - isklyuchenie stroki |
| ic str - - vstavit' simvol |
| dc str - - isklyuchit' simvol |
| cd str - - ochistit' ekran ot kursor|
| do konca |
| ce str - - ochistka konca stroki |
| sr str - - prokrutit' tekst vniz |
| sf str - - prokrutit' tekst vverh |
| ns log - - net sdvizhki teksta |
| (net roll) |
| cs str - - izmenenie oblasti pro- |
| krutki teksta* |
|------------------------------------------|
- 33 -
34
Prodolzhenie tab. 1
--------------------------------------------
| n imya tip obya- tol'ko znachenie |
| har zat. dlya red harakteristiki |
|------------------------------------------|
| 6 kd str + - kod klavishi strelka vniz|
| ku str + - -- // -- strelka vverh |
| kl str + - -- // -- strelka vlevo |
| kr str + - -- // -- strelka vpravo|
| kh str + - -- // -- "home" |
|------------------------------------------|
| 7 kody klavish, ispol'zue-|
| myh dlya vypolneniya |
| komand redaktora: |
| kN - - komanda <-PAGE> |
| kP - - komanda <+PAGE> |
| kB - - komanda <B-TAB> |
| kF - - komanda <+LINE> |
| kR - - komanda <-LINE> |
|------------------------------------------|
| 8 Kody, vyrabatyvaemye |
| funkcional'nymi klavi- |
| shami PF1 - PF5 |
| Traktuyutsya oni tak: |
| k1 str - - komanda <ARG> |
| k2 str - - komanda <OPEN> |
| k3 str - - komanda <CLOSE> |
| k4 str - - komanda <INSERT> |
| k5 str - - komanda <DCHAR> |
|------------------------------------------|
| 9 f. str - + Kody, vyrabatyvaemye |
| f- str - + dopolnitel'noj funkcio-|
| f0 str - + nal'noj klaviaturoj. |
| f1 |
| .. ... . . |
| f9 str - + |
|------------------------------------------|
|10 tc=<imya> oznachaet, chto ostal'nye ha-|
| rakteristiki sovpadayut s|
| harakteristikami terminala |
| <imya> |
| <imya>@ otmena harakteristiki |
| <imya> |
| hR str - + Imya fajla s kratkim |
| opisaniem komand |
| (vydaetsya pol'zovatelyu)|
|------------------------------------------|
- 34 -
35
Prodolzhenie tab. 1
--------------------------------------------
| n imya tip obya- tol'ko znachenie |
| har zat. dlya red harakteristiki |
|------------------------------------------|
|11 Gs str - + Vklyuchenie psevdografi- |
| cheskogo nabora simvolov|
| Ge str - + Vyklyuchenie psevdografi-|
| ki |
| Gt str - + Nabor simvolov psevdo- |
| grafiki |
--------------------------------------------
V tablice 1 privedeny osnovnye harakteristiki, ispol'zue-
mye redaktorom red. Polnoe opisanie vozmozhnyh harakteristik
imeetsya v dokumentacii po operacionnoj sisteme.
Harakteristiki razbity na 11 grupp.
Gruppa 1.
Opisyvaet razmery ekrana terminala;
Gruppa 2.
Opisyvaet sposob upravleniya kursorom na ekrane. Samyj
slozhnyj element gruppy - harakteristika "cm". Esli u
terminala net vozmozhnosti pryamoj adresacii kursora na
ekrane, to dlya raboty red neobhodimy harakteristiki,
pomechennye simvolom "*" v grafe "obyazatel'nyj", v pro-
tivnom sluchae redaktor mozhet obojtis' i bez nih. Harak-
teristika "am" oznachaet, chto pri dostizhenii konca
stroki kursor avtomaticheski perehodit na nachalo sleduyu-
shchej stroki;
Gruppa 3.
Opisyvaet inicializaciyu displeya i dopolnitel'nye ego
harakteristiki. "cu" - eto kod simvola, ispol'zuemogo
redaktorom dlya markirovki polozheniya kursora v "okne".
esli on ne ukazan, ispol'zuetsya simvol "@". Rekomendu-
etsya ukazyvat' "cu=\177", esli tol'ko terminal umeet
otobrazhat' etot kod kak svetlyj kvadrat;
Gruppa 4.
Vozmozhnosti terminala po otobrazheniyu simvolov. esli
"UC", to terminal dolzhen rabotat' v rezhime "lcase"; |ti
harakteristiki ispol'zuet sistema, a ne redaktor, dlya
ustanovki flagov terminala.
Gruppa 5.
Dopolnitel'nye redaktiruyushchie vozmozhnosti terminala;
harakteristika "cs" analogichna "cm" po rabote s
- 35 -
36
parametrami - nomerami verhnej i nizhnej stroki oblasti
sdviga teksta.
Gruppa 6.
Kody, vyrabatyvaemye osnovnymi upravlyayushchimi klavishami;
Gruppa 7.
Kody, vyrabatyvaemye funkcional'nymi klavishami, kotorye
predpolagaetsya ispol'zovat' v sootvetstvii s ukazannoj
traktovkoj.
Gruppa 8.
Kody, vyrabatyvaemye funkcional'nymi klavishami PF1 -
PF5 ili klavishami, ih zamenyayushchimi.
Gruppa 9.
Kody, vyrabatyvaemye dopolnitel'noj funkcional'noj kla-
viaturoj s nadpisyami "0"-"9", "-", ".".
Gruppa 10.
Pozvolyaet opisyvat' odin terminal cherez drugoj, esli
oni pohozhi. naprimer:
vt340:cm@:UC:KI:LC@:nb:tc=vdt52100c
Gruppa 11
Opisyvaet rabotu s psevdograficheskimi simvolami, koto-
rye ispol'zuyutsya dlya risovaniya ramok. Gs vklyuchaet rezhim
vyvoda psevdograficheskih simvolov, Ge ego vyklyuchaet.
Stroka Gt opisyvaet kodirovanie psevdograficheskih sim-
volov v rezhime psevdografiki: kazhdyj simvol stroki
sootvetstvuet odnomu simvolu psevdografiki v sleduyushchem
poryadke:
- gorizontal'naya cherta;
- bol'shoj zakrashennyj kvadrat;
- vertikal'naya cherta;
- levyj nizhnij ugol;
- nizhnee "T";
- pravyj nizhnij ugol;
- levoe "T";
- peresechenie dvuh linij;
- pravoe "T";
- verhnij levyj ugol;
- verhnee "T";
- verhnij pravyj ugol;
- strelka vniz;
- strelka vverh;
- strelka vlevo;
- strelka vpravo;
esli v stroke zadano men'she simvolov, ne zadannye
- 36 -
37
simvoly zamenyayutsya na sootvetstvuyushchie im obychnye sim-
voly KOI-8.
5.2. Adresaciya kursora.
Sposob adresacii kursora dlya dannogo terminala opisyva-
etsya harakteristikoj "cm" strochnogo tipa. Krome simvolov,
kotorye prosto peredayutsya na terminal, v stroke mogut vstre-
chat'sya special'nye posledovatel'nosti vida %X, kotorye pri
vyvode zamenyayutsya na nomer kolonki ili nomer stroki po pra-
vilam, opredelyaemym simvolom X (analogichno rabotaet format v
printf). Esli rassmatrivat' stroku "cm" kak format vyvoda,
to parametrami funkcii vyvoda yavlyayutsya nomer stroki i pozi-
cii, na kotorye dolzhen byt' ustanovlen kursor. Kody tipa
"%" imeyut sleduyushchij smysl:
%d - to zhe, chto i dlya programmy "printf", prichem numera-
ciya kolonok i stolbcov nachinaetsya s 0;
%2 - ekvivalentno %2d;
%3 - ekvivalentno %3d;
%. - ekvivalentno %c;
%+x - slozhit' kod simvola "x" s sootvetstvuyushchim znacheniem
(nomerom stroki ili kolonki), zatem vydat' ee po
"%.";
%r - obratnyj poryadok nomerov stroki i pozicii. vyvod ne
proizvoditsya;
%i - nomera stroki i kolonki otschityvat' s 1 (vmesto 0);
%% - daet odin simvol "%".
Naprimer, dlya terminala "VDT-52100" adresaciya kursora
opisyvaetsya sleduyushchej strokoj:
cm=3^a%.%.
Terminaly, kotorye ispol'zuyut kody vida "%.", dolzhny
imet' harakteristiki "bs" (ili "bc") i "up", to est' imet'
vozmozhnost' peremeshchat' kursor nazad na 1 poziciyu i vverh na
odnu stroku. |to neobhodimo, tak kak redaktor ne vydaet
pri adresacii kursora simvoly \t, \n, ^D i \r: sistema mozhet
izmenit' ili unichtozhit' eti simvoly.
V dannom razdele ochen' kratko byli izlozheny pravila opi-
saniya terminala v fajle /etc/termcap. Obychno pri poyavlenii
novogo terminala byvaet celesoobrazno dlya ego opisaniya
ispol'zovat' opisanie kakogo-libo drugogo terminala libo
- 37 -
38
ispol'zovat' kratkoe opisanie s parametrom "tc=...". Odnako
skoree vsego vse vashi terminaly uzhe imeyutsya v /etc/termcap,
chto izbavit ot neobhodimosti razbirat'sya v ne ochen' prostyh
pravilah opisaniya terminalov.
- 38 -
39
PRILOZHENIE 1. Spravochnaya informaciya po red
Redaktor red prednaznachen dlya redaktirovaniya i prosmotra
fajlov v ekrannom rezhime. On pozvolyaet prosmatrivat' na
ekrane terminala odin ili neskol'ko fajlov, redaktirovat'
fajly s ispol'zovaniem upravlyayushchih klavish terminala i komand
redaktora, perenosit' informaciyu iz fajla v fajl i provodit'
drugie operacii redaktirovaniya.
Redaktor vyzyvaetsya s pomoshch'yu komandy red v odnom iz sle-
duyushchih formatov:
red [-klyuchi] imya_fajla [nomer_stroki]
Nachat' redaktirovanie fajla "imya_fajla", ustanoviv okno
na stroku nomer_stroki; esli nomer ne ukazan, vysvechi-
vaetsya nachalo fajla.
red [-klyuchi]
Prodolzhit' redaktirovanie s togo sostoyaniya, v kotorom
byl zavershen predydushchij seans raboty s dannogo termi-
nala.
red [-klyuchi] -
Povtorit' seans redaktirovaniya fajlov posle sboya sis-
temy ili redaktora.
red [-klyuchi] -r fajl_protokol
Povtorit' seans redaktirovaniya, schitav protokol iz uka-
zannogo fajla.
Vvod komand osushchestvlyaetsya s pomoshch'yu funkcional'nyh kla-
vish terminala. Na bol'shinstve terminalov dlya etogo ispol'-
zuetsya dopolnitel'naya cifrovaya klaviatura, raspolozhennaya
sprava dlya osnovnoj. Osoboe znachenie imeet klavisha `2',
kotoraya izmenyaet znachenie sleduyushchej klavishi. Esli dopolni-
tel'naya cifrovaya klaviatura otsutstvuet ili ne imeet rezhima
generacii upravlyayushchih kodov, ispol'zuetsya klavisha <perevod
stroki> (<LineFeed>), naprimer vmesto `1' vvodyat
<LineFeed>`1', a vmesto `2'`4' - <LineFeed><LineFeed>`4'.
Kratkoe opisanie komand
V opisanii privedeny: kratkoe nazvanie komandy, polnoe
nazvanie komandy, vvod s klaviatury (cherez "," perechisleny
vozmozhnye varianty vvoda, zapis' ^C oznachaet CTRL+C):
<ARG> - VVOD ARGUMENTA: `1', <LineFeed><Probel>
Nachalo vvoda argumenta. Argumentom mozhet byt' stroka
simvolov ili ukazanie oblasti na ekrane terminala
(oblast' opredelyaetsya nachal'nym i konechnym polozheniyami
kursora i predstavlyaet soboj libo pryamougol'nik na
ekrane, esli nachal'naya i konechnaya kolonki ne sovpadayut,
libo neskol'ko strok, esli nachal'naya i konechnaya kolonki
- 39 -
40
sovpadayut). Vvod argumenta zavershaetsya vvodom komandy,
k kotoroj etot argument otnositsya.
<TAB> - TABULYACIYA: <TAB>
<B-TAB> - TABULYACIYA NAZAD: `.', ^B
peredvinut' kursor na sleduyushchuyu (predydushchuyu) poziciyu
tabulyacii.
<GOTO> - PEREJTI NA: `4'
Bez argumenta - perehod na nachalo fajla. Argument -
nomer stroki; pustoj argument - konec fajla.
<LEFT> - SDVIG VLEVO: `2'<kursor vlevo>
<RIGHT> - SDVIG VPRAVO: `2'<kursor vpravo>
Sdvig ekrana vlevo/vpravo.
<+PAGE> - LIST VPERED: `7', <NextScr>
<-PAGE> - LIST NAZAD: `2'`7', <PrevScr>
Vozmozhnyj argument - chislo stranic, na kotorye ekran
peremeshchaetsya po tekushchemu fajlu.
<+LINE> - STROKA VPERED: <Forward>, ^T
<-LINE> - STROKA NAZAD: <Backward>, ^W
Argument - chislo strok; pustoj argument - vyvesti teku-
shchuyu stroku v verhnyuyu (nizhnyuyu) stroku okna (peremeshcheniem
okna po fajlu). Klavishi <Forward> i <Backward> (nad-
pisi mogut byt' i inymi) oboznacheny v opisanii termi-
nala v sisteme kak "kF" i "kR".
<+SEARCH> - POISK VPERED: `3', ^R
<-SEARCH> - POISK NAZAD: `2'`3', ^E
Argument - tekst, kotoryj nuzhno najti v fajle.
<INSERT> - REZHIM VSTAVKI: `5', <PF4>
Vklyuchaet/vyklyuchaet rezhim vstavki;
<D-CHAR> - ISKLYUCHITX SIMVOL: `6', ^U
<TRUNC> - ISKLYUCHITX KONEC STROKI: `1'`6'
<OPEN> - RAZDVINUTX: `8', <PF2>
Vstavit' pustuyu stroku; argument - chislo strok libo
oblast' na ekrane, v kotoruyu nuzhno vstavit' probely.
<CLOSE> - UBRATX: `2'`8', <PF3>
Ubrat' stroki libo oblast' na ekrane. Ubrannaya infor-
maciya popadaet v bufer ubrannyh strok.
<GET> - VZYATX: `9', ^F
Zapomnit' stroki libo oblast' na ekrane.
<PUT> - POLOZHITX: `2'`9', ^G
Vzyataya ranee informaciya pomeshchaetsya v tekushchee mesto na
- 40 -
41
ekrane. Komanda s pustym argumentom ispol'zuetsya,
chtoby vstavit' informaciyu iz bufera ubrannyh strok.
<SPLIT> - RAZREZATX STROKU NA DVE
Otrabatyvaetsya po komande <OPEN> s pustym argumentom.
(`1'<PF2>).
<JOIN> - SKLEITX STROKI
Otrabatyvaetsya po komande <CLOSE> s pustym argumentom.
(`1'<PF3>).
<SAVE> - ZAPISX: `2' `-', ^V
Argument - imya fajla (esli ne sovpadaet so starym).
<USE> - REDAKTIROVATX: `-', ^D
Komanda bez argumenta perehodit k al'ternativnomu fajlu
(po umolchaniyu - fajl podskazok).
<M-PORT> - SOZDATX OKNO: `2'`4'
Argument - imya fajla, kotoryj budet vysvechivat'sya v
novom okne. Kursor dolzhen byt' libo v krajnej levoj
pozicii ekrana libo na verhnej stroke ekrana. Komanda
s pustym argumentom vypolnyaet otmenu poslednego zave-
dennogo okna.
<CH-PORT> - SMENITX OKNO: `0'
smenit' tekushchee okno (esli otkryto bolee chem odno
okno).
<EXEC> - VYPOLNITX: `2'`0', ^P
Argument: "[chislo[l] ] komanda [argumenty]". "komanda"
vypolnyaetsya kak fil'tr nad tekstom v ocherednyh "chislo"
abzacah (esli ukazana bukva l, to strokah) fajla.
Abzac - gruppa nepustyh strok fajla, razdelennaya odnoj
ili neskol'kimi pustymi strokami.
<EXIT> - VYHOD: <Perevod stroki><Zaboj>
Argument "a" blokiruet zapis' izmenennyh fajlov.
Komanda mozhet takzhe vvodit'sya kak <ARG>q[a]<Vozvrat
karetki>.
- Zapomnit' v peremennuyu: <ARG>>I<Komanda>
Gde I - imya makroperemennoj (odna bukva), <Komanda> -
libo <Vozvrat karetki> (togda zapominaetsya tekushchee
mesto v fajle), libo <GET> (zapominaetsya bufer
vstavki), libo <CLOSE> (zapominaetsya bufer ubrannyh
strok). Makro zatem mozhno ispol'zovat' v komandah
<GOTO>, <PUT>, a takzhe v komandah, argumentom kotoryh
mozhet byt' oblast' na ekrane (v etom sluchae vvoditsya
oblast' ot tekushchego polozheniya kursora do zapomnennoj
metki), ukazav v kachestve argumenta "$I".
- 41 -
42
- VVOD MAKRO: <ARG>d I<VK>
Koncom vvoda sluzhit komanda <VYHOD>.
- VYPOLNENIE MAKRO: <PS>$I
- PEREOPREDELENIE KLAVISHI: <ARG>k<VK>
Pri etom, esli v otvet na zapros pereopredelyaemoj
komandy vvedeno imya makro (odna bukva), pri nazhatii
etoj klavishi vypolnyaetsya dannoe makro.
<ESCAPE> - PRIZNAK NETEKSTOVOGO SIMVOLA: `2'`0', ^A
Po etoj komande vvoditsya special'nyj simvol i sleduyushchij
upravlyayushchij simvol vvoditsya v fajl, a ne traktuetsya
redaktorom kak komanda.
Dalee privedena kodirovka komand dlya naibolee rasprostra-
nennyh terminalov. Esli na vashem terminale oboznacheniya na
upravlyayushchej klaviature ne sovpadayut s nimi, neobhodimo utoch-
nit' kodirovanie komand redaktora u sistemnyh programmistov.
Na shemah klaviatury sverhu napisano nazvanie komandy, koto-
raya ispolnyaetsya po dannoj klavishe. Poseredine - nadpis' na
klavishe. Snizu napisano nazvanie komandy, kotoraya ispolnya-
etsya, esli predvaritel'no nazhat' klavishu `2'.
____________________________________________________________
Komandy dlya |lektronika-15-I|-0013
upravlyayushchaya klaviatura cifrovaya klaviatura
-------