>. 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 -------