3041
edycji
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 637: | Linia 637: | ||
* NLI - obszar jest wyprowadzany bez zatrzymania wydruków | * NLI - obszar jest wyprowadzany bez zatrzymania wydruków | ||
* LIN - wydruk jest zatrzymywany po zapełnieniu całego ekranu. Wykonywanie zlecenia po wprowadzeniu: | * LIN - wydruk jest zatrzymywany po zapełnieniu całego ekranu. Wykonywanie zlecenia po wprowadzeniu: | ||
** cr - jest wznawiane | ** '''cr''' - jest wznawiane | ||
**dc4 - jest kończone | ** '''dc4''' - jest kończone | ||
* LIN=<liczba> - ustawienie długości ekranu | * LIN=<liczba> - ustawienie długości ekranu | ||
Linia 655: | Linia 655: | ||
Działanie: na monitor jest wyprowadzany obszar określony przez wyrażenie adresowe i instrukcję Z. Długość tego obszaru jest określona przez podaną liczbę lub, gdy nie jest ona podana, przez wartość opcji 'Zwindow' (standardowo 7): | Działanie: na monitor jest wyprowadzany obszar określony przez wyrażenie adresowe i instrukcję Z. Długość tego obszaru jest określona przez podaną liczbę lub, gdy nie jest ona podana, przez wartość opcji 'Zwindow' (standardowo 7): | ||
ZW=<liczba> | ZW=<liczba> | ||
<instrukcja_Z>: | <instrukcja_Z>: | ||
Linia 751: | Linia 751: | ||
Jeżeli wskaźnik konwersji poprzedza symbol oznaczający łańcuch, zamienione zostaną wszystkie litery wskazanego łańcucha. | Jeżeli wskaźnik konwersji poprzedza symbol oznaczający łańcuch, zamienione zostaną wszystkie litery wskazanego łańcucha. | ||
<schemat_podstawienia> ::= {<opis_wystąpień>}[G] [?] _ & [?] | <schemat_podstawienia> ::= {<opis_wystąpień>}[G] [?] _ & [?] | ||
Pusty schemat podstawienia oznacza zamianę tylko pierwszego zgodnego ze wzorcem łańcucha w wierszu. | |||
<opis_wystąpienia> : opisuje operację wykonywaną na kolejnych łańcuchach zgodnych ze wzorcem: | <opis_wystąpienia> : opisuje operację wykonywaną na kolejnych łańcuchach zgodnych ze wzorcem: | ||
Linia 834: | Linia 834: | ||
Działanie: wskazane wiersze zostaną połączone w jeden wiersz. Jeżeli opisany obszar zawiera tylko jeden wiersz, do tego wiersza jest dołączany następny wiersz. Parametry zlecenia: | Działanie: wskazane wiersze zostaną połączone w jeden wiersz. Jeżeli opisany obszar zawiera tylko jeden wiersz, do tego wiersza jest dołączany następny wiersz. Parametry zlecenia: | ||
* ^ - usuwanie z dołączanych wierszy wszystkich początkowych spacji i znaków tabulacji ht | * <code>^</code> - usuwanie z dołączanych wierszy wszystkich początkowych spacji i znaków tabulacji '''ht''' | ||
* /<łańcuch> - przed każdym dołączanym wierszem jest wstawiany podany łańcuch | * <code>/<łańcuch></code> - przed każdym dołączanym wierszem jest wstawiany podany łańcuch | ||
Wierszem bieżącym po wykonaniu zlecenia jest nowo utworzony wiersz. Zlecenie U rozdziela wiersz na wiersze składowe. | Wierszem bieżącym po wykonaniu zlecenia jest nowo utworzony wiersz. Zlecenie <code>U</code> rozdziela wiersz na wiersze składowe. | ||
== Przenoszenie i kopiowanie wierszy == | == Przenoszenie i kopiowanie wierszy == | ||
Linia 849: | Linia 849: | ||
<instrukcja_C_M>: | <instrukcja_C_M>: | ||
* CA - kopiowanie obszaru za wskazany wiersz | * <code>CA</code> - kopiowanie obszaru za wskazany wiersz | ||
* CI - kopiowanie obszaru przed wskazany wiersz | * <code>CI</code> - kopiowanie obszaru przed wskazany wiersz | ||
* MA - przenoszenie obszaru za wskazany wiersz | * <code>MA</code> - przenoszenie obszaru za wskazany wiersz | ||
* MI - przenoszenie obszaru przed wskazany wiersz | * <code>MI</code> - przenoszenie obszaru przed wskazany wiersz | ||
Wierszem bieżącym po wykonaniu zlecenia jest ostatni skopiowany lub przeniesiony wiersz (zlecenia CA i MA) lub wiersz wskazany wyrażeniem adresowym (zlecenia CI i MI). | Wierszem bieżącym po wykonaniu zlecenia jest ostatni skopiowany lub przeniesiony wiersz (zlecenia <code>CA</code> i <code>MA</code>) lub wiersz wskazany wyrażeniem adresowym (zlecenia <code>CI</code> i <code>MI</code>). | ||
Zlecenie U usuwa skopiowany obszar (zlecenia CA i CI) lub przenosi go z powrotem (zlecenia MI i MA). | Zlecenie <code>U</code> usuwa skopiowany obszar (zlecenia <code>CA</code> i <code>CI</code>) lub przenosi go z powrotem (zlecenia <code>MI</code> i <code>MA</code>). | ||
=== Przenoszenie i kopiowanie wierszy do buforów pomocniczych === | === Przenoszenie i kopiowanie wierszy do buforów pomocniczych === | ||
Linia 865: | Linia 865: | ||
<instrukcja_D_Y>: | <instrukcja_D_Y>: | ||
* D - przenoszenie wierszy | * <code>D</code> - przenoszenie wierszy | ||
* Y - kopiowanie wierszy | * <code>Y</code> - kopiowanie wierszy | ||
Można korzystać z 26 buforów pomocniczych o nazwach A..Z oraz z bufora specjalnego bez nazwy. Informacje o zawartości buforów nazwanych są drukowane zleceniem " w postaci: | Można korzystać z 26 buforów pomocniczych o nazwach A..Z oraz z bufora specjalnego bez nazwy. Informacje o zawartości buforów nazwanych są drukowane zleceniem " w postaci: | ||
<nazwa_bufora> <liczba_wierszy> | <nazwa_bufora> <liczba_wierszy> | ||
Wierszem bieżącym po skopiowaniu (Y) jest ostatni wiersz obszaru a po przeniesieniu (D) - pierwszy wiersz za przeniesionymi. | Wierszem bieżącym po skopiowaniu (<code>Y</code>) jest ostatni wiersz obszaru a po przeniesieniu (<code>D</code>) - pierwszy wiersz za przeniesionymi. | ||
Zlecenie U przenosi wiersze z powrotem do bufora roboczego (po kopiowaniu tylko je usuwa z bufora pomocniczego). Jeżeli zlecenie kopiowania lub przenoszenia wierszy do bufora pomocniczego było podane bez parametru >, to zlecenie U nie odtwarza poprzedniej zawartości bufora pomocniczego. | Zlecenie <code>U</code> przenosi wiersze z powrotem do bufora roboczego (po kopiowaniu tylko je usuwa z bufora pomocniczego). Jeżeli zlecenie kopiowania lub przenoszenia wierszy do bufora pomocniczego było podane bez parametru <code>></code>, to zlecenie <code>U</code> nie odtwarza poprzedniej zawartości bufora pomocniczego. | ||
Bufor specjalny (bez nazwy) jest wykorzystywany także przy wykonywaniu innych zleceń niż D i Y. Gdy wykonywane jest zlecenie C, wiersze usunięte tym zleceniem są przenoszone do tego bufora. Także przy wykonywaniu zlecenia U po zleceniach I, A, C, RA i RI wiersze usunięte są przenoszone do bufora specjalnego (ponowne wykonanie zlecenia U przeniesie te wiersze z powrotem do bufora roboczego i bufor specjalny zostanie opróżniony). | Bufor specjalny (bez nazwy) jest wykorzystywany także przy wykonywaniu innych zleceń niż <code>D</code> i <code>Y</code>. Gdy wykonywane jest zlecenie <code>C</code>, wiersze usunięte tym zleceniem są przenoszone do tego bufora. Także przy wykonywaniu zlecenia U po zleceniach <code>I</code>, <code>A</code>, <code>C</code>, <code>RA</code> i <code>RI</code> wiersze usunięte są przenoszone do bufora specjalnego (ponowne wykonanie zlecenia <code>U</code> przeniesie te wiersze z powrotem do bufora roboczego i bufor specjalny zostanie opróżniony). | ||
=== Kopiowanie buforów pomocniczych do bufora roboczego === | === Kopiowanie buforów pomocniczych do bufora roboczego === | ||
Linia 886: | Linia 886: | ||
<instrukcja_P>: | <instrukcja_P>: | ||
* PA - kopiowanie bufora za wskazany wiersz | * <code>PA</code> - kopiowanie bufora za wskazany wiersz | ||
* PI - kopiowanie bufora przed wskazany wiersz | * <code>PI</code> - kopiowanie bufora przed wskazany wiersz | ||
Wierszem bieżącym po wykonaniu zlecenie jest ostatni skopiowany wiersz (PA) lub wiersz wskazany wyrażeniem adresowym (PI). Zlecenie U usuwa skopiowany obszar. | Wierszem bieżącym po wykonaniu zlecenie jest ostatni skopiowany wiersz (<code>PA</code>) lub wiersz wskazany wyrażeniem adresowym (<code>PI</code>). Zlecenie <code>U</code> usuwa skopiowany obszar. | ||
== Edycja wielu zbiorów == | == Edycja wielu zbiorów == | ||
Linia 901: | Linia 901: | ||
*** NEW FILE *** | *** NEW FILE *** | ||
i edytor przechodzi do wczytywania wierszy z końcówki - wykonywane jest niejawne zlecenie A | i edytor przechodzi do wczytywania wierszy z końcówki - wykonywane jest niejawne zlecenie <code>A</code>. Po wprowadzeniu '''dc4''' edytor kończy wprowadzanie i rozpoczyna edycję bufora ustawiając wskaźnik dostępu na ostatni wprowadzony wiersz. Wprowadzenie pustego zbioru ('''dc4''' w pierwszym wierszu) powoduje powrót do edycji bufora poprawianego do tej pory. | ||
=== Edycja innego bufora === | === Edycja innego bufora === | ||
Linia 915: | Linia 915: | ||
* "<litera> - bufor pomocniczy o podanej nazwie | * "<litera> - bufor pomocniczy o podanej nazwie | ||
* *[<litera>] - bufor pomocniczy zleceń | * *[<litera>] - bufor pomocniczy zleceń | ||
* - - bufor poprawiany przed wykonaniem ostatniego zlecenia E lub N | * - - bufor poprawiany przed wykonaniem ostatniego zlecenia <code>E</code> lub <code>N</code> | ||
Po przejściu do edycji bufora roboczego jest odtwarzany wskaźnik dostępu i znaczniki wierszy użyte w czasie poprzedniej edycji tego bufora. Po przejściu do edycji bufora pomocniczego wskaźnik dostępu jest ustawiany na pierwszy wiersz bufora a znaczniki wierszy są zerowane. Jeżeli wskazany bufor pomocniczy jest pusty, wyprowadzany jest komunikat: | Po przejściu do edycji bufora roboczego jest odtwarzany wskaźnik dostępu i znaczniki wierszy użyte w czasie poprzedniej edycji tego bufora. Po przejściu do edycji bufora pomocniczego wskaźnik dostępu jest ustawiany na pierwszy wiersz bufora a znaczniki wierszy są zerowane. Jeżeli wskazany bufor pomocniczy jest pusty, wyprowadzany jest komunikat: | ||
Linia 921: | Linia 921: | ||
*** NEW BUFFER *** | *** NEW BUFFER *** | ||
i edytor przechodzi do wprowadzania zawartości bufora z końcówki. Działanie edytora w czasie wprowadzania jest takie samo jak w czasie wykonywania zlecenia A. Podanie jako parametru znaku ! zmienia ustawienie opcji 'autotab' na przeciwne | i edytor przechodzi do wprowadzania zawartości bufora z końcówki. Działanie edytora w czasie wprowadzania jest takie samo jak w czasie wykonywania zlecenia <code>A</code>. Podanie jako parametru znaku ! zmienia ustawienie opcji 'autotab' na przeciwne. Wprowadzanie jest kończone wpisaniem dc4 lub wiersza zawierającego tylko znacznik końca wprowadzania - znaku podanego w zleceniu <code>E</code> za wskazaniem bufora. Znacznikiem końca wprowadzania może być dowolny znak kodu ASCII poza znakami '''!''', '''cr''', '''dc4''', '''lf''' i spacją. Edycja buforów pomocniczych niczym nie różni się od edycji buforów roboczych, z tym że niedozwolone jest użycie nazwy poprawianego bufora pomocniczego w zleceniu kopiowania lub przenoszenia wierszy. | ||
=== Zmiana nazwy bufora roboczego === | === Zmiana nazwy bufora roboczego === | ||
Linia 939: | Linia 939: | ||
Składnia zlecenia: <code>FA</code> | Składnia zlecenia: <code>FA</code> | ||
Działanie: na monitor są wyprowadzane informacje o wszystkich buforach roboczych. W pierwszym wierszu jest wyprowadzany opis bufora aktualnie poprawianego w takiej samej postaci jak zleceniem F. W dalszych - opis pozostałych buforów roboczych w podobnej postaci: | Działanie: na monitor są wyprowadzane informacje o wszystkich buforach roboczych. W pierwszym wierszu jest wyprowadzany opis bufora aktualnie poprawianego w takiej samej postaci jak zleceniem <code>F</code>. W dalszych - opis pozostałych buforów roboczych w podobnej postaci: | ||
<numer_bufora> <tytuł_zbioru> <liczba_wierszy_w_buforze> | <numer_bufora> <tytuł_zbioru> <liczba_wierszy_w_buforze> | ||
Opis bufora poprawianego poprzednio (dostępnego zleceniem E) jest poprzedzony znakiem - . | Opis bufora poprawianego poprzednio (dostępnego zleceniem <code>E</code>) jest poprzedzony znakiem '''-'''. | ||
== Wyprowadzanie zawartości bufora do zbioru == | == Wyprowadzanie zawartości bufora do zbioru == | ||
Linia 954: | Linia 954: | ||
* <code>W</code> - kopiowanie bufora | * <code>W</code> - kopiowanie bufora | ||
* <code>WQ</code> - kopiowanie bufora i wykonanie zlecenia Q | * <code>WQ</code> - kopiowanie bufora i wykonanie zlecenia <code>Q</code> | ||
* <code>></code> - wskazany obszar jest dołączany do istniejącego zbioru | * <code>></code> - wskazany obszar jest dołączany do istniejącego zbioru | ||
* <code>!</code> - pozwolenie na zapisanie zawartości bufora do zbioru już istniejącego (wymagane tylko wtedy, gdy jest podany tytuł zbioru) | * <code>!</code> - pozwolenie na zapisanie zawartości bufora do zbioru już istniejącego (wymagane tylko wtedy, gdy jest podany tytuł zbioru) | ||
Linia 965: | Linia 964: | ||
Po znaku zapytania należy wprowadzić znak: | Po znaku zapytania należy wprowadzić znak: | ||
* | * '''>''' - wskazany obszar będzie dołączony do zawartości zbioru | ||
* | * '''!<''' - zawartość zbioru będzie zniszczona | ||
* '''cr''' - zlecenie nie będzie wykonane | * '''cr''' - zlecenie nie będzie wykonane | ||
Jeżeli nie jest podany tytuł zbioru, obszar będzie skopiowany do zbioru o tytule takim jak nazwa poprawianego bufora roboczego. Gdy jest poprawiany bufor pomocniczy, tytuł zbioru jest obowiązkowy. Wierszem bieżącym po wykonaniu instrukcji W jest ostatni skopiowany wiersz. Gdy zostanie wykonana instrukcja WQ, wierszem bieżącym zapamiętanym w zbiorze roboczym będzie wiersz dostępny w momencie wprowadzania zlecenia. | Jeżeli nie jest podany tytuł zbioru, obszar będzie skopiowany do zbioru o tytule takim jak nazwa poprawianego bufora roboczego. Gdy jest poprawiany bufor pomocniczy, tytuł zbioru jest obowiązkowy. Wierszem bieżącym po wykonaniu instrukcji <code>W</code> jest ostatni skopiowany wiersz. Gdy zostanie wykonana instrukcja <code>WQ</code>, wierszem bieżącym zapamiętanym w zbiorze roboczym będzie wiersz dostępny w momencie wprowadzania zlecenia. | ||
== Globalne wykonywanie zleceń == | == Globalne wykonywanie zleceń == | ||
Linia 977: | Linia 976: | ||
Znaczenie: na wszystkich wierszach opisanego obszaru zgodnych z podanym wzorcem (lub niezgodnych - jeżeli jest podany parametr ^) będzie wykonane wskazane zlecenie. Wskazany obszar musi zawierać więcej niż jeden wiersz. Jeżeli opis obszaru nie zostanie podany, przeszukany zostanie cały bufor. Wzorzec ma składnię i znaczenie opisane w 3.2. Pusty wzorzec oznacza przyjęcie wzorca użytego w ostatnim zleceniu przeszukiwania bufora. Zleceniem G można wykonywać zlecenia: D, A, I, C, RA, RI, P, L, #, Z, S, &, @, %, _~, J, CL, LU, UL, W, Y, PA, PI i O. Jeżeli zlecenie nie zostanie podane, wiersze wskazane wzorcem będą wyświetlone na monitorze w postaci określonej przez opcje listowania. Parametry zlecenia: | Znaczenie: na wszystkich wierszach opisanego obszaru zgodnych z podanym wzorcem (lub niezgodnych - jeżeli jest podany parametr ^) będzie wykonane wskazane zlecenie. Wskazany obszar musi zawierać więcej niż jeden wiersz. Jeżeli opis obszaru nie zostanie podany, przeszukany zostanie cały bufor. Wzorzec ma składnię i znaczenie opisane w 3.2. Pusty wzorzec oznacza przyjęcie wzorca użytego w ostatnim zleceniu przeszukiwania bufora. Zleceniem G można wykonywać zlecenia: D, A, I, C, RA, RI, P, L, #, Z, S, &, @, %, _~, J, CL, LU, UL, W, Y, PA, PI i O. Jeżeli zlecenie nie zostanie podane, wiersze wskazane wzorcem będą wyświetlone na monitorze w postaci określonej przez opcje listowania. Parametry zlecenia: | ||
* ^ - zlecenie dotyczy wierszy niezgodnych z podanym wzorcem | * <code>^</code> - zlecenie dotyczy wierszy niezgodnych z podanym wzorcem | ||
* ? - zlecenie będzie wykonane na wierszach wskazanych wzorcem i parametrem ^, ale dopiero po akceptacji użytkownika. Edytor przed wykonaniem zlecenia wyświetla zawartość wiersza i oczekuje na wprowadzenie znaku akceptacji: | * <code>?</code> - zlecenie będzie wykonane na wierszach wskazanych wzorcem i parametrem <code>^</code>, ale dopiero po akceptacji użytkownika. Edytor przed wykonaniem zlecenia wyświetla zawartość wiersza i oczekuje na wprowadzenie znaku akceptacji: | ||
** + zlecenie będzie wykonane | ** '''+''' zlecenie będzie wykonane | ||
** cr zlecenie nie będzie wykonane | ** '''cr''' zlecenie nie będzie wykonane | ||
** dc4 zlecenie nie będzie wykonane i pozostałe wiersze wskazanego obszaru nie będą analizowane | ** '''dc4''' zlecenie nie będzie wykonane i pozostałe wiersze wskazanego obszaru nie będą analizowane | ||
Jeżeli parametr ? nie jest podany, wiersze na których ma być wykonane zlecenie są także wyświetlane na monitorze, ale zatrzymanie wydruku następuje dopiero po zapełnieniu ekranu (zgodnie z ustawieniem opcji 'linecount'). Wprowadzenie '''cr''' wznawia wykonanie zlecenia, natomiast dc4 - kończy je. Po wykonaniu całego zlecenia G jest wykonywane automatycznie zlecenie <code>P</code> wyświetlające na monitorze wiersz dostępny w tym momencie (chyba, że wierszem bieżącym jest ostatni wyświetlony wiersz). Zlecenie <code>U</code> cofa wszystkie wykonane zmiany. | Jeżeli parametr <code>?</code> nie jest podany, wiersze na których ma być wykonane zlecenie są także wyświetlane na monitorze, ale zatrzymanie wydruku następuje dopiero po zapełnieniu ekranu (zgodnie z ustawieniem opcji 'linecount'). Wprowadzenie '''cr''' wznawia wykonanie zlecenia, natomiast '''dc4''' - kończy je. Po wykonaniu całego zlecenia <code>G</code> jest wykonywane automatycznie zlecenie <code>P</code> wyświetlające na monitorze wiersz dostępny w tym momencie (chyba, że wierszem bieżącym jest ostatni wyświetlony wiersz). Zlecenie <code>U</code> cofa wszystkie wykonane zmiany. | ||
== Wykonywanie poprawek w trybie niekonwersacyjnym == | == Wykonywanie poprawek w trybie niekonwersacyjnym == | ||
Linia 1086: | Linia 1085: | ||
* =T[^:]\Y - etykieta (niepusty ciąg znaków ograniczonych znakiem ''':''') | * =T[^:]\Y - etykieta (niepusty ciąg znaków ograniczonych znakiem ''':''') | ||
* =P!.*! - rozdziela wzorzec na części | * =P!.*! - rozdziela wzorzec na części | ||
* =Q\3\2\1 - zmienne P i Q są wykorzystywane przy zamianie miejscami dwóch części wiersza i powinny być używane razem. Zlecenie: S/<część>\P<część>/\Q zamieni miejscami łańcuchy wskazane przez części wzorca. Gdy przestawiane części bezpośrednio stykają się ze sobą można także zapisać: S/<część>!<część>/\Q | * =Q\3\2\1 - zmienne P i Q są wykorzystywane przy zamianie miejscami dwóch części wiersza i powinny być używane razem. Zlecenie: <code>S/<część>\P<część>/\Q</code> zamieni miejscami łańcuchy wskazane przez części wzorca. Gdy przestawiane części bezpośrednio stykają się ze sobą można także zapisać: <code>S/<część>!<część>/\Q</code>. Uwaga: Wzorzec użyty w zlecenie wykorzystującym zmienne P i Q nie powinien zawierać innych znaków ! dzielących go na części. Użycie dodatkowych znaków ! może spowodować przestawienie innych części niż zostało to podane. Na przykład zlecenie <code>S/<część1>!<część2>!<część3>/\Q</code> przestawi części pierwszą i trzecią. | ||
Uwaga | |||
* =V\ - znak backslash \. Definicja taka jest niezbędna, gdy chcemy wprowadzać teksty zawierające litery poprzedzone znakiem \, a używamy zmiennych generacyjnych. Na przykład, jeżeli korzystamy z wcześniej opisanych definicji, to znaki \D zostaną po wprowadzeniu rozwinięte do ciągu [0-9], gdyż taki zapis oznacza zmienną generacyjną. Znaki \D zostaną wprowadzone do wiersza, dopiero jeżeli napiszemy: \VD . | * =V\ - znak backslash \. Definicja taka jest niezbędna, gdy chcemy wprowadzać teksty zawierające litery poprzedzone znakiem \, a używamy zmiennych generacyjnych. Na przykład, jeżeli korzystamy z wcześniej opisanych definicji, to znaki \D zostaną po wprowadzeniu rozwinięte do ciągu [0-9], gdyż taki zapis oznacza zmienną generacyjną. Znaki \D zostaną wprowadzone do wiersza, dopiero jeżeli napiszemy: \VD . | ||