Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00287 005010 14828328 na godz. na dobę w sumie
Edytor vi - książka
Edytor vi - książka
Autor: , Liczba stron: 304
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-539-2 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> unix
Porównaj ceny (książka, ebook, audiobook).
Edytowanie tekstu to jedno z najbardziej typowych zadań realizowanych na komputerze, zaś vi jest jednym z najbardziej użytecznych, standardowych edytorów. Za jego pomocą można tworzyć w systemie UNIX nowe pliki tekstowe lub edytować istniejące.

Książka ta składa się z dwunastu rozdziałów oraz pięciu dodatków. Wszystkie je pogrupowano w trzy części.

W dwóch pierwszych rozdziałach, vi -- edytor tekstu oraz Typowe zadania edycyjne, omówiono podstawowe polecenia edytora. Materiał ten należy ćwiczyć tak długo, aż przedstawione i opisane polecenia będzie można wykonywać niemal automatycznie ('same będą wchodzić na klawiatu-rę').

W rozdziałach 3. i 4. (Biegiem po dokumencie i Dla bardziej zaawansowanych) skoncentrowano się na upraszczaniu własnej pracy.

W rozdziałach 5., 6. i 7. -- kolejno Wprowadzenie do edytora ex, Podstawienia globalne i Zaawansowane techniki edycji -- przedstawiono narzędzia umożliwiające w większym stopniu obciążenie komputera edycją tekstu, a nie użytkownika. Zaprezentowano edytor wierszowy ex, który leży u podstaw vi; pokazano też, jak w edytorze vi uruchamiać polecenia ex.

W części drugiej opisano rozszerzenia 'standardowego' vi, dostępne w większości lub wszystkich jego klonach.

W rozdziale 8. (Zestawienie cech klonów edytora vi) omówiono edycję wielookienkową, interfejsy graficzne (GUI), rozszerzone wyrażenia regularne, ułatwienia edycji i inne. W rozdziałach od 9. do 12. omawiano kolejno poszczególne klony edytora vi: nvi, elvis, vim i vile. Pokazano, jak używać zaimplementowanych w nich rozszerzeń i scharakteryzowano ich specyficzne cechy.

W części trzeciej zawierającej dodatki znajdują się przydatne zestawienia. W dodatku A zestawiono wszystkie polecenia vi i ex, uszeregowane według realizowanej funkcji.

Dodatek B zawiera alfabetyczną listę wszystkich poleceń ex.

W dodatku C zestawiono opcje używane w poleceniu set.

W dodatku D zestawiono opis problemów uwzględnionych w niniejszej książce.

Dodatek E opisuje miejsce edytora vi w środowisku UNIX i środowisku internetowym.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI Edytor vi. KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG Autorzy: Linda Lamb, Arnold Robbins T‡umaczenie: Tomasz flmijewski ISBN: 83-7197-539-2 Tytu‡ orygina‡u: Format: B5, stron: 304 Learning the vi Editor TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Edytowanie tekstu to jedno z najbardziej typowych zadaæ realizowanych na komputerze, za(cid:156) vi jest jednym z najbardziej u¿ytecznych, standardowych edytor(cid:243)w. Za(cid:160) jego pomoc„ mo¿na tworzy(cid:230) w systemie UNIX nowe pliki tekstowe lub edytowa(cid:230) istniej„ce. Ksi„¿ka ta sk‡ada siŒ z dwunastu rozdzia‡(cid:243)w oraz piŒciu dodatk(cid:243)w. Wszystkie je pogrupowano w trzy czŒ(cid:156)ci. W dw(cid:243)ch pierwszych rozdzia‡ach, vi -- edytor tekstu oraz Typowe zadania edycyjne, om(cid:243)wiono podstawowe polecenia edytora. Materia‡ ten nale¿y (cid:230)wiczy(cid:230) tak d‡ugo, a¿ przedstawione i opisane polecenia bŒdzie mo¿na wykonywa(cid:230) niemal automatycznie ((cid:132)same bŒd„ wchodzi(cid:230) na klawiatu-rŒ(cid:148)). W rozdzia‡ach 3. i 4. (Biegiem po dokumencie i Dla bardziej zaawansowanych) skoncentrowano siŒ na upraszczaniu w‡asnej pracy. W rozdzia‡ach 5., 6. i 7. -- kolejno Wprowadzenie do edytora ex, Podstawienia globalne i(cid:160) Zaawansowane techniki edycji -- przedstawiono narzŒdzia umo¿liwiaj„ce w wiŒkszym stopniu obci„¿enie komputera edycj„ tekstu, a nie u¿ytkownika. Zaprezentowano edytor wierszowy ex, kt(cid:243)ry le¿y u podstaw vi; pokazano te¿, jak w edytorze vi uruchamia(cid:230) polecenia ex. W czŒ(cid:156)ci drugiej opisano rozszerzenia (cid:132)standardowego(cid:148) vi, dostŒpne w wiŒkszo(cid:156)ci lub wszystkich jego klonach. W rozdziale 8. (Zestawienie cech klon(cid:243)w edytora vi) om(cid:243)wiono edycjŒ wielookienkow„, interfejsy graficzne (GUI), rozszerzone wyra¿enia regularne, u‡atwienia edycji i inne. W(cid:160) rozdzia‡ach od 9. do 12. omawiano kolejno poszczeg(cid:243)lne klony edytora vi: nvi, elvis, vim i vile. Pokazano, jak u¿ywa(cid:230) zaimplementowanych w nich rozszerzeæ i(cid:160) scharakteryzowano ich specyficzne cechy. W czŒ(cid:156)ci trzeciej zawieraj„cej dodatki znajduj„ siŒ przydatne zestawienia. W dodatku A zestawiono wszystkie polecenia vi i ex, uszeregowane wed‡ug realizowanej funkcji. Dodatek B zawiera alfabetyczn„ listŒ wszystkich poleceæ ex. W dodatku C zestawiono opcje u¿ywane w poleceniu set. W dodatku D zestawiono opis problem(cid:243)w uwzglŒdnionych w niniejszej ksi„¿ce. Dodatek E opisuje miejsce edytora vi w (cid:156)rodowisku UNIX i (cid:156)rodowisku internetowym. 78(cid:4)4 . .  (cid:3) 3.78+;3;/++;+273;+2/092-/:  3.+o  .8368/789: .  Otwieranie i zamykanie plików ...................................................z............................................ 19 Kończenie pracy bez zapisywania danych ...................................................z........................... 22 3.+o $43;/+.+2+/.-2/ .  Polecenia vi...................................................z...................................................z........................ 25 Przemieszczanie kursora...................................................z...................................................z.... 26 Proste zadania edycyjne...................................................z...................................................z..... 29 Inne sposoby wstawiania tekstu...................................................z............................................ 42 Użycie J do łączenia dwóch wierszy ...................................................z.................................... 43 Przegląd podstawowych poleceń vi...................................................z...................................... 44 3.+o /1/43.39/2-/ .  Poruszanie się pomiędzy całymi ekranami...................................................z........................... 47 Poruszanie się między blokami tekstu...................................................z.................................. 50 Poruszanie się za pomocą funkcji wyszukiwania...................................................z................. 51 Poruszanie się za pomocą wskazania numerów wierszy...................................................z...... 55 Zestawienie poleceń vi związanych z ruchem...................................................z...................... 56 3.+o +,+6./++;+273;+2- .  Więcej o łączeniu poleceń ...................................................z...................................................z. 59 Parametry używane przy wywoływaniu vi...................................................z........................... 60 Użycie buforów...................................................z...................................................z.................. 63 Oznaczanie położenia w pliku ...................................................z.............................................. 64 Inne zaawansowane funkcje edycyjne...................................................z.................................. 65 Przegląd poleceń związanych z buforami i znacznikami ...................................................z..... 65 3.+o 463;+./2/.3/.836+/ .   .836: Polecenia ex ...................................................z...................................................z....................... 67 Edycja danych w ex ...................................................z...................................................z........... 69 Zapisywanie plików i kończenie pracy ...................................................z................................ 75 Kopiowanie jednego pliku do drugiego...................................................z................................ 76 Edycja wielu plików ...................................................z...................................................z.......... 77 3.+o 3.78+;/2+13,+2/ .  Potwierdzanie podstawień ...................................................z...................................................z.84 Podstawienia zależne od kontekstu ...................................................z...................................... 85 Reguły dopasowywania wzorców ...................................................z........................................ 86 Przykłady dopasowywania wzorców...................................................z.................................... 92 Jeszcze kilka słów o dopasowywaniu wzorców ...................................................z................... 99 3.+o ++;+273;+2/8/-2/.-  Dostosowywanie vi do swoich potrzeb ...................................................z.............................. 105 Wywoływanie poleceń systemu UNIX ...................................................z.............................. 109 Zapisywanie poleceń ...................................................z...................................................z....... 112 Użycie skryptów ex ...................................................z...................................................z......... 123 Edycja kodów źródłowych ...................................................z................................................. 129 (cid:3) 37/6/2+32  3.+o /78+;/2/-/-32-;/.836+:  Oto moi bracia: Darrell, Darrell i Darrell ...................................................z........................... 137 Edycja w wielu oknach ...................................................z...................................................z....139 Interfejsy GUI ...................................................z...................................................z.................. 139 Rozszerzone wyrażenia regularne ...................................................z...................................... 140 Rozszerzone zakładki ...................................................z...................................................z...... 141 Udoskonalenia ...................................................z...................................................z................. 146 Pomoc dla programistów ...................................................z...................................................z. 150 Zestawienie cech edytorów...................................................z................................................. 152 Co dalej? ...................................................z...................................................z.......................... 153 3.+o 2:23;: .  Autor i historia ...................................................z...................................................z................. 155 Istotne parametry wiersza poleceń...................................................z...................................... 156 Pomoc i dokumentacja...................................................z...................................................z.....156 78(cid:13)4  Inicjalizacja ...................................................z...................................................z...................... 157 Edycja w wielu oknach ...................................................z...................................................z....158 Interfejsy graficzne ...................................................z...................................................z.......... 159 Rozszerzone wyrażenia regularne ...................................................z...................................... 159 Usprawnienia edycji ...................................................z...................................................z........ 160 Pomoc dla programistów ...................................................z...................................................z. 163 Ciekawe rozwiązania ...................................................z...................................................z....... 163 Kod źródłowy i obsługiwane systemy operacyjne ...................................................z............. 163 3.+o /:7 .  Autor i historia ...................................................z...................................................z................. 165 Istotne parametry wiersza poleceń...................................................z...................................... 165 Pomoc i dokumentacja...................................................z...................................................z.....166 Inicjalizacja ...................................................z...................................................z...................... 166 Edycja w wielu oknach ...................................................z...................................................z....168 Interfejsy graficzne ...................................................z...................................................z.......... 170 Rozszerzone wyrażenia regularne ...................................................z...................................... 175 Usprawnienia edycji ...................................................z...................................................z........ 176 Pomoc dla programistów ...................................................z...................................................z. 179 Ciekawe rozwiązania ...................................................z...................................................z....... 182 Przyszłość edytora elvis...................................................z...................................................z... 186 Kod źródłowy i obsługiwane systemy operacyjne ...................................................z............. 187 3.+o :9.3732+32: .  Autor i historia ...................................................z...................................................z................. 189 Istotne parametry wiersza poleceń...................................................z...................................... 190 Pomoc i dokumentacja...................................................z...................................................z.....191 Inicjalizacja ...................................................z...................................................z...................... 191 Edycja w wielu oknach ...................................................z...................................................z....193 Interfejsy graficzne ...................................................z...................................................z.......... 197 Rozszerzone wyrażenia regularne ...................................................z...................................... 199 Usprawnienia edycji ...................................................z...................................................z........ 201 Pomoc dla programistów ...................................................z...................................................z. 208 Ciekawe rozwiązania ...................................................z...................................................z....... 212 Kod źródłowy i obsługiwane systemy operacyjne ...................................................z............. 219 3.+o  :/:2-+-7 .   .836: Autorzy i historia ...................................................z...................................................z............. 221 Istotne parametry wiersza poleceń...................................................z...................................... 222 Pomoc i dokumentacja...................................................z...................................................z.....222 Inicjalizacja ...................................................z...................................................z...................... 224 Edycja w wielu oknach ...................................................z...................................................z....224 Interfejsy graficzne ...................................................z...................................................z.......... 226 Rozszerzone wyrażenia regularne ...................................................z...................................... 233 Ułatwienia edycji ...................................................z...................................................z............. 234 Pomoc dla programistów ...................................................z...................................................z. 239 Ciekawe rozwiązania ...................................................z...................................................z....... 242 Kod źródłowy i obsługiwane systemy operacyjne ...................................................z............. 246 (cid:3) 3.+8 .  3.+8/ /78+;/2/43/-/q .  3.+8/ 3/-/2+/ .  3.+8/ -/34- .  3.+8/ /78+;/2/843;-463,/-;  3.+8/ :+28/62/8 .  #363;. . .  Po co w podręczniku edytora vi znajduje się rozdział dotyczący innego edytora? Otzóż właściwie ex nie jest innym edytorem, to vi jest wizualną wersją ogólniejszego edytora wierszowego — właśnie ex. Niektóre polecenia ex mogą być przydatne podczas pracy z vi, gdyż pozwalają zaoszczędzić wiele czasu. Większość tych poleceń można wydawać, w ogzóle nie opuszczając vi1. Wiadomo już, że pliki traktować można jako ciąg ponumerowanych wierszy. ex umożliwia stoso- wanie poleceń edycji bardziej dynamicznie. Łatwo jest poruszać się miedzy różnymi plikami i ko- piować dane z jednego pliku do innego, robiąc to na różne sposoby. Można szybko operować na blokach tekstu większych niż jeden ekran, zaś podstawienia globalne umożliwiają podmienianie wszystkich wystąpień wzorca w pliku. W tym rozdziale omówiono edytor ex i jego polecenia, czyli jak: poruszać się po pliku, korzystając z numerów wierszzy,  używać poleceń ex do kopiowania, przenoszenia i usuwania bloków teksztu,  zapisywać pliki i ich części,  pracować jednocześnie z wieloma plikami (odczytując zdane i polecenia, poruszając się między  plikami). Na długo przed tym, zanim wymyślono vi lub w ogóle edytor ekranowy, ludzie komunikowali się z komputerem za pośrednictwem terminali drukujących, a nie monitorów. Numery wierszy były sposobem szybkiego wskazania potrzebnej części pliku, powstały wtedy edytory wierszowe służą- ce do edycji tych plików. Programista czy inny użytkownik komputera zazwyczaj drukował od- powiedni wiersz (lub wiersze), wydawał polecenia edycyjne, po czym ponownie drukował zmody- fikowany tekst. 1 vile różni się od pozostałych klonów tym właśnie, że widele poleceń ex po prostu w nim nie działa. Nie będziemy tego za każdym razem przypominać, po informdacje szczegółowe należy sięgnąć do rozdziału 12., gdzie omawiany jest edytor vile.  (cid:5) 3.78+;3;/++;+273;+2/092-/: Obecnie już nikt nie używa terminali drukujących, ale niektóre polecenia edytora wierszowego ex nadal są przydatne użytkownikom znacznie doskonalszych edytorów ekranowych zbudowanych na bazie ex. Wprawdzie edytowanie pliku zwykle jest prostsze w vi, ale operacje wierszowe ex są wygodniejsze, głównie w sytuacji dokonywania wielu zzmian w licznych miejscach w pliku. W przypadku wielu poleceń omawianych w tym rozdzialde jako parametr używa się nazwy pliku. Wprawdzie stosowanie spacji w tych nazwach jesdt możliwe, ale to bardzo zły zwyczaj. ex będzie miał problemy z interpretacją całego polecendia, zaś ewentualne korzyści nie są tego warte. Do rozdzielania poszczególnych słdów można użyć podkreśleń, kresek czy kropek — całość będzie równie czytelna, a przysporzyd znacznie mniej kłopotów. Zanim użytkownik zacznie uczyć się na pamięć poleceń ex albo, co gorsza, postanowi ich w ogóle nie używać, można przyjrzeć się nieco samym edytorom wierszowym. Zobaczenie jak działa bez- pośrednio wywołany ex może być pomocne w zrozumieniu składni bardziej skomplikowanych poleceń. Można spróbować otworzyć znany już plik i wypróbować kilka poleceń ex. Tak jak wywołuje się vi od razu z nazwą pliku, tak samo można wywołać ex. Edytor ten na początku pokazuje informa- cję o liczbie wierszy w pliku oraz wyświetla znak zzachęty — dwukropek, np.: $ ex practice practice 6 lines, 320 characters : Trudno zobaczyć choć jeden wiersz z pliku, póki edytorowi ex nie zostanie wydane polecenie wy- świetlenia tych wierszy. Polecenia ex składają się z adresu wiersza (może to być po prostu numer wiersza) i samego pole- cenia, kończy je znak powrotu karetki. Jednym z podstawowych poleceń jest p — wyświetlenie na ekranie. Jeśli zatem wpisze się np. 1p, można zobaczyć pierwszy wiersz pliku: :1p Edytor ekranowy pozwala : Tak naprawdę nawet to p można pominąć, gdyż podanie samego numeru wiersza też spowoduje jego wyświetlenie. Aby wydrukować więcej wierszy, należy podać zakres odpowiednich nume- rów, np. 1,3 — liczby rozdziela się przecinkiem: :1,3 Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, usuwać wiersze, wstawiać znaki itd., Jeśli podane zostanie polecenie, ale bez numeru wiersza, zakłada się, że polecenie dotyczy wiersza bieżącego. Wobec tego np. polecenie zastępujące jedno zsłowo innym (s) można zapisać tak: :1 Edytor ekranowy pozwala :s/ekranowy/wierszowy/ Edytor wierszowy pozwala 3.+o  463;+./2/.3/.836+/  Zwróć uwagę, że zmodyfikowany wiersz po wykonaniu polecenia jest wyświetlany. Można też ten sam, co poprzednio efekt uzyskać następująco: :1s/ekranowy/wierszowy/ Edytor wierszowy pozwala Nawet jeśli polecenia ex wywoływane są z vi i nie będą wykonywane bezpośrednio, warto po- święcić kilka minut na poznanie samego edytora ex. Dzięki temu można zdać sobie sprawę, jak przekazywać edytorowi wierszowemu adresy wierszy, kztórych dotyczyć ma polecenie. Kiedy już kilka poleceń ex zostało wykonanych na pliku practice, można otworzyć ten sam plik w vi i zobaczyć go w dobrze już znanym trybie pełnoekranowym. Aby z ex przejść do vi, wystar- czy wydać polecenie :vi. Aby z kolei w vi wywołać ex, należy użyć specjalnego znaku — dwukropka — po którym podaje się polecenie i naciska RETURN . Aby zatem w edytorze ex przejść do odpowiedniego wiersza, wystarczy po dwukropku podać jego numer. Aby przejść do wiersza 6., należy w edytorze vi wpisać: :6 Naciśnij RETURN . W dalszym ciągu ćwiczeń będzie omawiane uruchamianie pzoleceń ex jedynie z poziomu vi. ;-/2//.836/ W wierszu poleceń UNIX wywołaj edytor ex, otwierając w nim plik practice: ex practice Pojawia się komunikat: practice 6 lines, 320 characters Przejdź do pierwszego wiersza i wyświetl go: Wyświetl wiersze od 1 do 3: :1 :1,3 Podmień słowo „ekranowy” w pierwszym wierszu: :1s/ekranowy/wierszowy Wywołaj edytor vi: Przejdź do pierwszego wiersza: :vi :1 /78+;48+q (cid:1) Podczas edycji pliku w vi przypadkowo przeszedłeś dto edytora ex. Polecenie Q w trybie poleceń vi wywołuje ex. Kiedy jest się w ex, można przejść do vi, wy- dając polecenie vi. Wiele poleceń ex realizujących zwykłe operacje edycyjne ma swoje odpowiedniki w vi pozwala- jące te same edycje robić prościej. Oczywistym jest, że do usuwania słowa lub całego wiersza  (cid:5) 3.78+;3;/++;+273;+2/092-/: używa się raczej dw czy dd, a nie delete z ex. Kiedy jednak modyfikacje mają dotyczyć wielu wierszy, wygodniejsze w użyciu będą polecenia ex. Umożliwiają one modyfikowanie dużych fragmentów tekstu jednym tylko poleceniem. Poniżej zestawiono polecenia ex wraz z ich zapisem skrótowym. Pamiętaj, że w vi polecenia ex trzeba poprzedzać dwukropkiem. Można używać albo pełnego brzmienia polecenia, albo skrótu — co jest łatwiejsze do zapamiętania. delete move copy d m co t usuwanie wierszy przenoszenie wierszy kopiowanie wierszy kopiowanie wierszy (synonim co) Jeśli wydawać by się mogło, że polecenia ex będą czytelniejsze, gdy ich części zostaną poroz- dzielane spacjami, można spacje stosować i np. rozdzielać nimi adresy, wzorce i polecenia. Nie można jednak użyć spacji wewnątrz wzorca lub na końcuz polecenia podstawiania. .6/7;/67 W przypadku wszystkich poleceń edycyjnych ex konieczne jest podanie numerów modyfikowa- nych wierszy. Jeśli chodzi o polecenia move i copy, należy podać także miejsca docelowego przeniesienia czy kopiowania tekstu. Adresy wierszy można wskazywać na kilka sposobów: jawnie podawać numery wierszy,  korzystać z symboli opisujących położenie względem pozłożenia bieżącego,  korzystać ze wzorców wyszukiwania jako adresów.  Można zobaczyć teraz kilka przykładów. /023;+2/+6/79;/67 Za pomocą numerów wierszy można jawnie określić wiersz lub zakres wierszy. Adresy takie są nazywane adresami bezwzględnymi, np.: :3,18d :160,224m23 :23,29co100 Usuwa wiersze od 3. do 18. Przenosi wiersze od 160. do 224. za wiersz 23. (Działa jak pdołączenie w vi poleceń delete i put). Kopiuje wiersze 23. do 29. i wstawia za wiersz 100. (Jak yank i put w vi). Aby ułatwić sobie edycję przy użyciu numerów wierszy, można je wyświetlać po lewej stronie ekranu. Polecenie: :set number 3.+o  463;+./2/.3/.836+/  lub jego skrócona postać: :set nu wyświetlają numery wierszy. Plik practice będzie miał wtedy następującą postać: 1 Edytor ekranowy pozwala 2 przewijać strony, przemieszczać kursor, 3 usuwać wiersze, wstawiać znaki 4 itd., Wyświetlone numery nie są zapisywane w pliku, nie są też drukowane. Wyświetlane są tylko do zakończenia pracy z vi lub do ich wyłączenia odpowiednią opcją set: :set nonumber lub: :set nonu Aby tymczasowo wyświetlić numery wierszy dla jakiejś zich grupy, można użyć znaku #, np.: :1,10# wyświetli numery wierszy od pierwszego do dziesiątezgo. Jak to opisano już w rozdziale 3., do wyświetlenia numeru bieżącego wiersza można użyć polece- nia CTRL–G . W ten sposób, wykorzystując odpowiednie polecenia ruchu, można odczytać nu- mery wierszy początkowego i końcowego bloku tekstu. Jeszcze innym sposobem identyfikowania wierszy jest uzżycie polecenia ex =: := :.= wyświetla liczbę wierszy w pliku, wyświetla numer wiersza bieżącego, :/wzorzec/= wyświetla numer pierwszego wiersza zawierającego wzorzec. #,3/+.6/73;+2+;/67 Można też użyć symboli oznaczających adresy wierszy. .(kropka) oznacza wiersz bieżący, zaś $ — ostatni wiersz w pliku. oznacza wszystkie wiersze z pliku, czyli równoważne jest zapisowi 1,$. Symbole te można łączyć z adresami bezwzględnymi, npz.: :.,$d usuwa wiersze od bieżącego do końca pliku, :20,.m$ : d : t$ przenosi wiersze od 20. do bieżącego na koniec pliku, usuwa wszystkie wiersze z pliku, kopiuje wszystkie wiersze z pliku na jego koniec (wz efekcie tworząc duplikat pliku).  (cid:5) 3.78+;3;/++;+273;+2/092-/: Oprócz bezwzględnych adresów wierszy można też stosować adresy określane względem wiersza bieżącego. Symbole + i - działają jak zwykłe operatory arytmetyczne. Jeśli podane zostaną przed liczbą, spowodują dodanie lub odjęcie znajdującej sizę za nimi wartości, np.: :.,.+20d usuwa wiersz bieżący i 20 następnych, :226,$m.-2 przenosi wiersze od 226. do końca pliku w miejsce dwa zwiersze przed wierszem bieżącym, :.,+20# wyświetla numery wierszy dla wiersza bieżącego i 20 nzastępnych wierszy. Zresztą w przypadku korzystania z operatorów + i - nie jest konieczne używanie kropki, gdyż właśnie od wiersza bieżącego zaczyna się zliczanie. Jeśli za + lub - nie zostanie podana żadna liczba, zinterpretowane to zostanie jako +1 i -12. Ana- logicznie zapis ++ i -- odpowiednio rozszerzają zakres o kolejny wiersz itd. Operatorów + i - można też użyć w połączeniu z wzorcami wyszukiwaniaz, co opisano w następnym punkcie. Liczba 0 oznacza początek pliku i jest odpowiednikiem zapisu 1-, pozwala przenosić lub kopio- wać dane na sam początek pliku przed pierwszym wierzszem zawierającym tekst, np. polecenie: :-,+t0 skopiuje trzy wiersze (wiersz nad kursorem, wiersz zz kursorem i jeszcze jeden następny wiersz) i wstawi je na początek pliku. 36-/;79;+2+ Innym sposobem adresowania wierszy w ex jest użycie wzorców wyszukiwania, np.: :/wzorzec/d usuwa następny wiersz zawierający wzorzec. :/wzorzec/+d usuwa wiersz znajdujący się pod wierszem zawierającym wzorzec (zamiast samego + można byłoby zapisać +1). :/wzorzec1/,/wzorzec2/d usuwa wszystkie wiersze od pierwszego, zawierającegzo wzorzec1 do pierwszego, zawierającego wzorzec2. :.,/wzorzec/m23 pobiera tekst od bieżącego wiersza (.) do pierwszego wiersza zawierającego wzorzec i przenosi go za wiersz 23. Zwróć uwagę na to, że przed i za wzorcami znajdują się ukośniki. 2 W przypadku adresowania względnego nie należy oddzidelać symboli plusa i minusa od znajdującej się za nimi liczby, np. +10 oznacza „10 kolejnych wierszy”, ale + 10 oznacza już „11 kolejnych wierszy (bo 1 + 10)”, a przecież nie o to chodziło. 3.+o  463;+./2/.3/.836+/  Jeśli tekst jest usuwany według wzorca w vi i w ex, edytory te działają nieco inaczej. Zakładając, że plik practice zawiera następujące dane: Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, usuwać wiersze, wstawiać znaki itd., wyniki tych operacji widoczne są od razu na ekranie. Klawisze d/wyniki Wyniki Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, wyniki tych operacji widoczne są od razu na ekranie. Edytor vi usuwa wszystkie dane od bieżącego położenia kursorda do słowa wyniki, jednak reszta obu wierszy pozostaje bez zmian. :.,/wyniki/d Edytor ekranowy pozwala przewijać strony, operacji widoczne są od razu na ekranie. Edytor ex usuwa cały wskazany zakres wierszy. W tym przypadkdu usunięty został wiersz bieżący oraz wiersz ze wzorcem3 — oba zostały usunięte w całości. +2+;/67+,/ -/13 Czasami użycie w poleceniu adresu względnego może zaowocować niespodziewanymi wynikami. Można założyć np., że kursor jest w pierwszym wierszu i użytkownik chce wydrukować wiersz 100. i pięć następnych. Jeśli zostanie wpisane polecenie:z :100,+5 p otrzyma się następujący komunikat o błędzie: „First address exceeds second”4. Polecenie nie zo- stało wykonane, gdyż drugi adres wyliczany jest względem bieżącego położenia kursora (czyli 1), więc polecenie to jest interpretowane następująco: :100,6 p Tymczasem chodzi o nakazanie użycia wiersza 100. jako wziersza bieżącego. Aby ex tak zrozumiał nasze polecenie, zamiast przecinka należy użyć średnika; wtedy pierwszy adres zostanie potraktowany jako wiersz bieżący. Aby zrealizować omawiany przykład, należy wydać polecenie: :100;+5 p 3 Zakłada się, że operujemy na niezmienionym (przez popdrzednie polecenie) tekście. Gdybyśmy kontynuowali pracę po usunięciu tekstu przez vi, tym razem usunięty zostałby tylko jeden wiersz — zawierający wzorzec, będący jednocześnie wierszem bideżącym — przyp. tłum. 4 Pierwszy adres znajduje się dalej niż drugi — przyp. tłum.  (cid:5) 3.78+;3;/++;+273;+2/092-/: Tym razem +5 interpretowane będzie względem wiersza 100. Średnik jest też użyteczny w przy- padku korzystania z adresowania za pomocą wzorca i adresowania bezwzględnego. Aby np. wy- świetlić wiersz zawierający wzorzec wraz z 10 następnymi wierszami, należy użyć poleceniza: :/wzorzec/;+10 p 79;+2/13,+2/ Wiadomo już, jak używać w vi ukośnika do wyszukiwania wzorców. ex zawiera z kolei polecenie g, które umożliwia wyszukiwanie wzorca i wyświetlanie wierszy go zawierających. Polecenie :g! działa przeciwnie niż :g. :g! lub jego synonimu :v można użyć do wyświetlenia wierszy nie zawierających wzorca. Polecenie g dotyczyć może wszystkich wierszy z pliku, można też ograniczyć zakres jego działania. :g/wzorzec odnajduje ostatnie wystąpienie wzorca w pliku (i przenosi tam kursor), :g/wzorzec/p odnajduje i wyświetla wszystkie wiersze zawierającez wzorzec, :g!/wzorzec/nu odnajduje i wyświetla wszystkie wiersze nie zawierazjące wzorca; wyświetla też numery odnalezionych wierszy, :60,124g/wzorzec/p odnajduje i wyświetla wiersze od 60. do 124., które zawizerają wzorzec. Zgodnie z oczekiwaniami polecenia g można użyć do robienia podstawień globalnych. Temat ten zostanie omówiony w rozdziale 6. n-/2/43/-/q/ Nie każde kolejne polecenie ex musi zaczynać się dwukropkiem — kreska pionowa („|”) jest se- paratorem poleceń, co pozwala wykonywać wiele poleceń w jednym wierszu ex (podobnie jak średnik pozwala łączyć w wierszu poleceń wiele instrukcji systemu UNIX). W przypadku używa- nia | trzeba uważać na adresowanie. Jeśli jedno polecenie zmieni kolejność wierszy w pliku, na- stępne będzie działało już na podstawie nowej numerzacji. Oto przykłady: :1,3d | s/ihc/ich/ usuwa wiersze od 1. do 3. (wierszem bieżącym staje się zpoczątek pliku), następnie robi podstawienie w wierszu bieżącym (w chwili wydawania czałego polecenia był to wiersz 4.), :1,5 m 10 | g/wzorzec/nu przesuwa wiersze od 1. do 5. za wiersz 10., następnie wyzświetla wszystkie wiersze zawierające wzorzec (jednocześnie numerując wyświetlane wiersze). Pamiętaj, że spacje ułatwiają czytanie poleceń. 3.+o  463;+./2/.3/.836+/  Wiadomo już, że polecenie vi ZZ, zapisując plik, kończy pracę edytora. Często jednak kończy się pracę za pomocą poleceń ex, gdyż umożliwiają one pełniejszą kontrolę nad tym, co się dzieje. Wspomniano już o nich — teraz można zobaczyć je dokładzniej: :w :q :wq :x zapisuje bufor w pliku, lecz nie kończy pracy. Polecenzia :w można (i należy) używać podczas sesji, aby ustrzec się przed utratą danych wz wyniku awarii systemu lub poważnego błędu podczas edycji, kończy pracę edytora (wracając do wiersza poleceń sysztemu UNIX), zapisuje plik i kończy pracę edytora. Zapis robiony jezst bezwarunkowo — nawet jeśli nie zmieniono nic w pliku, zapisuje plik i kończy pracę edytora. Plik jest zapizsywany tylko wtedy, gdy był zmodyfikowany5. vi stara się chronić zarówno istniejące już w systemie pliki, jak i poczynione w buforze zmiany. Jeśli np. próbuje się zapisać bufor w miejsce istniejącego już pliku, wyświetlane jest ostrzeżenie. Analogicznie, jeśli plik zostanie zmodyfikowany, by zakończyć sesję nie zapisawszy zmian, vi wygeneruje komunikat o błędzie: No write since last change6. Ostrzeżenia te pozwalają uniknąć kosztownych pomyłek. Czasem jednak zdarza się, że chciałbyś mimo wszystko wykonać dane polecenie. W tym celu za pzoleceniem należy dodać wykrzyknik: :w! :q! Polecenie :w! pozwala też zapisać plik, który został otwarty w trybie tylko do odczytu (polece- niem vi -R lub view) — jednak pod warunkiem, że użytkownik posiada uprawnienia do pisania w danym pliku. Polecenie :q! jest bardzo ważnym narzędziem umożliwiającym zakończenie pracy bez wpływa- nia na zawartość pliku, niezależnie od ewentualnych zmian wprowadzonych podczas sesji7. Wszystkie zmiany zawartości bufora są odrzucane. +2+2+;,9036+ Polecenie :w pozwala też zapisać cały bufor (czyli kopię edytowanezgo pliku) pod nową nazwą. 5 Różnica między :wq i :x jest istotna, jeśli edytujesz kod źródłowy i używasz dprogramu make, który w swoim działaniu bazuje na czasach modyfikacjid plików. 6 Nie zapisano ostatnich modyfikacji pliku — przyp. tłum. 7 Pod warunkiem jednak, że nie używałeś (wcześniej) poledcenia :w — przyp. tłum.  (cid:5) 3.78+;3;/++;+273;+2/092-/: Załóżmy, że mamy plik practice zawierający 600 wierszy. Po otwarciu pliku robi się w nim mnó- stwo poprawek. Chcąc skończyć pracę i tak potrzebne będą obie wersje pliku: stara i nowa. Aby zmodyfikowaną zawartość bufora zapisać pod nazwą practice.new, trzeba wydać polecenie: :w practice.new Stara wersja tekstu w pliku practice pozostanie niezmieniona (o ile nie używałeś wcześniej :w). Można zakończyć działanie edytora, wydając polecenie z:q. +47;+2/-#-49 Czasem podczas edycji warto część tekstu zapisać w osobnym pliku. Można np. wpisać kody for- matujące, które mają być potem stosowane jako nagłówzki jeszcze wielu innych plików. Połączenie adresowania wierszy ex z poleceniem w pozwala zapisywać tylko część bufora. Jeśli np. jest edytowany plik practice, to chcąc zapisać jego część jako nowyplik, można użyć polecenia: :230,$w nowyplik zapisuje w pliku nowyplik wiersze od 230. do końca bufora, :.,600w nowyplik zapisuje wiersze od bieżącego do 600. w pliku nowyplik. 3o-+2/.34923;-.+2- Użycie operatora przekierowania lub dopisywania systemu UNIX pozwala dane do pliku dopisy- wać lub zastąpić nimi zawartość dotychczasową. Jeśli np. zzostanie wpisane: :1,10w nowyplik i potem: :340,$w nowyplik to nowyplik zawierał będzie wiersze od 1. do 10. oraz od 340. do końcaz bufora. Czasami trzeba wstawić tekst lub dane właśnie wprowadzone do systemu do edytowanego pliku. W vi zawartość innego pliku można odczytać poleceniem ex: :read nazwapliku lub w zapisie skróconym: :r nazwapliku Polecenie to wstawia zawartość pliku nazwapliku począwszy od wiersza bezpośrednio za wier- szem zawierającym kursor. Jeśli dane mają być wstawione w innym miejscu, przed poleceniem read lub r podaje się adres wiersza. 3.+o  463;+./2/.3/.836+/  Na przykład edytowany jest plik practice, do którego można wczytać plik data znajdujący się w katalogu /home/tim. Kursor należy umieścić nad miejscem, w które nowy plik ma być wstawio- ny i wpisać: :r /home/tim/data Cała zawartość /home/tim/data zostanie wstawiona do practice, poczynając od wiersza pod kursorem. Aby ten sam plik wczytać i wstawić za wierszem 185., trzezba wydać polecenie: :185r /home/tim/data Oto inne sposoby odczytywania plików: :$r /home/tim/data wstawia plik na koniec pliku edytowanego, :0r /home/tim/data wstawia plik na sam początek pliku edytowanego, :/wzorzec/r /home/tim/data wstawia plik do pliku edytowanego za wierszem zawiezrającym wzorzec. Polecenia ex umożliwiają przełączanie się między wieloma różnymi plikami. Zaletą takiego roz- wiązania jest szybkość działania. Jeśli system używany jest przez wielu użytkowników, zakończe- nie pracy w vi i ponowne uruchomienie tego edytora wymaga czasu. Jeśli w ramach jednej sesji będzie edytowanych wiele kolejnych plików, to nie tylko będzie można szybciej pracować, ale za- chowane zostaną wszystkie zdefiniowane skróty i sekwencje poleceń (szczegóły w rozdziale 7.), poza tym pozostanie zawartość buforów, dzięki czemu mzożna przenosić tekst między plikami. ;3o;+2/:;/3+4+ Przy pierwszym wywołaniu vi można podać nazwy więcej niż jednego pliku do edycji — wtedy polecenia ex pozwolą przełączać się między tymi plikami, np.: $ vi plik1 plik2 powoduje edycję najpierw pliku plik1. Kiedy edycja tego pliku zostanie zakończona, polecenie :w spowoduje jego zapisanie, zaś :n udostępni do edycji kolejny plik — plik2. Załóżmy, że mamy edytować dwa pliki: practice i note. Klawisze Wyniki vi practice note Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, usuwać wiersze, wstawiać znaki itd., wyniki tych Otwarto dwa pliki, practice i note. Na ekranie pojawia się pierwszy z nich — powstają wszystkie potrzebne modyfikacje.  :w :n :x (cid:5) 3.78+;3;/++;+273;+2/092-/: practice 6 lines, 328 characters Zapisano edytowany plik practice, wydając polecenie ex w, po czym naciska się RETURN . Szanowny Panie Henshaw: Dziękujemy za uprzejme... Wywołano następny plik, czyli note, za pomocą polecenia ex n, wciśnięto RETURN — można przystąpić do edycji drugiego pliku. note 23 lines, 1343 characters Zapisano drugi plik i ukończono sesję. -/784+6+/86); Edytor ex umożliwia więcej niż tylko przechodzenie za pomocą :n do następnego pliku podanego w wierszu poleceń. Polecenie :args (skracane jako :ar) wyświetla pliki z wiersza poleceń, przy czym plik aktualnie edytowany ujęty jest w nawiasy zkwadratowe. Klawisze Wyniki vi practice note Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, usuwać wiersze, wstawiać znaki itd., wyniki tych Otwarto dwa pliki: practice i note. Na ekranie pojawia się pierwszy z nich. :args [practice] note vi wyświetla listę parametrów z wiersza poleceń, bieżdący plik ujęty jest w nawiasy kwadratowe. Polecenie :rewind (lub :rew) powoduje, że plikiem bieżącym ponownie staje się pierwszy plik z listy. elvis i vim dysponują poleceniem :last powodującym przejście do ostatniego pliku podanego w wierszu poleceń. -8;+2/23;-4); Nie trzeba od razu na początku pracy z edytorem podawać nazw wszystkich plików, które mają być poprawiane. W każdej chwili poleceniem :e można otworzyć inny plik. Chcąc w vi zacząć edycję innego pliku, najpierw trzeba zapisać plik biezżący (:w) i wydać polecenie: :e nazwapliku Załóżmy, że edytuje się plik practice i chce przejść do edycji letter, po czym wrócić do practice. 3.+o  463;+./2/.3/.836+/  Klawisze Wyniki :w practice 6 lines, 328 characters Poleceniem w zapisuje się plik practice, naciska RETURN . practice jest zapisywany na dysku, nadal pozostaje na ekranie. Teraz można jużd jednak przełączyć się do innego pliku. :e letter letter 23 lines, 1344 characters Poleceniem e wywołuje się plik letter, naciska RETURN i można przystąpić do edycji nowego pliku. vi „pamięta” dwie nazwy plików jako nazwę bieżącą i alternatywną. Można się do nich odwoły- wać za pomocą symboli: (symbol pliku bieżącego) i # (symbol pliku alternatywnego). # jest szczególnie użyteczny w połączeniu z poleceniem :e, gdyż umożliwia przełączanie się między dwoma plikami. W powyższym przykładzie do pierwszego pliku (practice) można byłoby wrócić poleceniem :e #. Za pomocą polecenia :r # można też wczytać plik practice do pliku bieżącego. Jeśli nie zostanie zapisany najpierw plik bieżący, vi nie pozwoli przełączyć się poleceniami :e czy :n — chyba że doda się do tych poleceń wykrzyknik nakazujący wykonanie polecenia niezależnie od konsekwencji. Jeśli np. powstaną jakieś modyfikacje w letter, z których chce się zrezygnować, aby wrócić do practice, należy wydać polecenie :e! #. Użyteczne jest też polecenie umożliwiające odrzucenie wszystkich zmian i przywracające postać bieżącego pliku w wersji z chwili ostatniego zapisu: :e! Z kolei symbol użyteczny jest głównie przy zapisywaniu zawartości bufora do nowego pliku, np. kilka stron wcześniej, w punkcie Zmiana nazwy bufora, pokazano, jak zapisać drugą wersję pliku practice za pomocą polecenia: :w practice.new Ponieważ oznacza nazwę pliku bieżącego, powyższy wiersz możzna zastąpić następującym: :w .new 6/o-+2/7##.4+;: Jako że wracanie do pliku poprzedniego zdarza się dość często, w celu jego re- alizacji nie jest konieczne uciekanie się do wiersza poleceń ex. Polecenie vi ^^ (klawisz karetki naciśnięty wraz z CTRL ) powoduje przełączenie się do pliku poprzedniego. Użycie tego polecenia daje efekt taki sam, jak :e #. Tak jak w przypadku polecenia :e vi nie po- zwoli przełączyć się, jeśli bieżący bufor nie został zzapisany.  (cid:5) 3.78+;3;/++;+273;+2/092-/: 6/237/2/.+2-#.4+ Kiedy użyje się bufora roboczego z jednoliterową nazwą, można wygodnie przenosić tekst z jed- nego pliku do innego. Nazwane bufory nie są czyszczone podczas ładowania nowego pliku pole- ceniem :e. W ten sposób, kopiując lub usuwając tekst z jednego pliku do dowolnej liczby nazwa- nych buforów i następnie wywołując polecenie :e nowyplik, można wklejać tekst z jednego pliku do innego — dane są w ten sposób przenoszone lzub kopiowane. W poniższym przykładzie przedstawiono przenoszenie ztekstu między plikami. Klawisze f4yy :w :e letter fp Wyniki Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, usuwać wiersze, wstawiać znaki itd., wyniki tych operacji widoczne są od razu na ekranie. Skopiowano cztery wiersze do bufora roboczego f. practice 6 lines, 238 characters Zapisano plik. Szanowny Panie Henshaw: Wydaje mi się, iż może zainteresować Pana fakt, że: Łączę wyrazy szacunku, Poleceniem :e przechodzi się do pliku letter. Umieszcza się kursor w miejscu, za którym wstawiony ma być kopiowany tekst. Szanowny Panie Henshaw: Wydaje mi się, iż może zainteresować Pana fakt, że: Edytor ekranowy pozwala przewijać strony, przemieszczać kursor, usuwać wiersze, wstawiać znaki itd., wyniki tych operacji widoczne są od razu na ekranie. Łączę wyrazy szacunku, Umieszczono skopiowany tekst z bufora f zaraz pod kursorem. Innym sposobem przenoszenia tekstu między plikami jest użycie poleceń ex: :ya (kopiowanie) i :pu (wstawianie). Polecenia te działają tak samo jak odpowiedniki z vi: y i p, ale umożliwiają użycie znanego z ex adresowania. I tak np. polecenie: :160,224ya a 3.+o  463;+./2/.3/.836+/  skopiuje do bufora a wiersze od 160. do 224. Następnie poleceniem :e przechodzi się do nowego pliku, w którym skopiowany tekst ma być umieszczony. Kursor należy ustawić w miejscu, za któ- rym mają się znaleźć wiersze, po czym wpisać: :pu a Spowoduje to wstawienie za bieżącym wierszem zawartozści bufora a.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Edytor vi
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: