vi-muman interaktywny mikro-podręcznik dla nowych użytkowników vi ................................................................................ Zalecam otwarcie tego pliku w trybie "tylko do odczytu". W tym celu wpisz w linii komend (DOKŁADNIE): vi -Readonly vi-muman.pl gdzie: -Readonly (duża litera R) jest opcją "tylko do oczytu", która uchroni ten plik przed modyfikacjami; vi-muman.pl jest nazwą tego pliku. ^^^^^^^^^^^^^^^^^^^^ ZAPAMIĘTAJ LUB ZAPISZ SOBIE! ^^^^^^^^^^^^^^^^^^^^ ABY OPUŚCIĆ vi wciśnij kolejno następujące klawisze [ESC] :q [ENTER] gdzie: [ESC] jest klawiszem umieszczonym w lewym górnym rogu klawiatury a [ENTER] jest to klawisz oznaczony jako ENTER (lub RETURN). Pamiętaj, aby po wciśnięciu klawisza natychmiast zdjąć z niego palec. Zanim wciśniesz klawisz [ENTER] powinna się pojawić następująca linia: :q Rozkaz ten (quit - wyjdź) pojawi się w ostatnim wierszu ekranu. Jeśli po wydaniu powyższego polecenia nie uda się opuścić edytora, wciśnij [ESC] :q! [ENTER] Spowoduje to bezwarunkowe opuszczenie edytora (quit! - wyjdź!) bez zapisu dokonanych w nim modyfikacji. Teraz możesz ponownie otworzyć ten plik w edytorze (w trybie tylko do oczytu). Pamiętaj, aby nie wciskać klawiszy w sposób przypadkowy (każdy klawisz ma przypisane jakieś polecenie). ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Aby przejść o 1 stronę DO PRZODU: [CTRL] f (trzymając [CTRL] wciśnij f) Aby przejść o 1 stronę DO TYŁU: [CTRL] b (f oznacza Forward (naprzód), b Backward - wstecz) (dalej) Zrobione! Ćwiczenia: a - cofnij się do poprzedniej strony a następnie wróć tutaj z powrotem. b - wyjdź z tego podręcznika (jeśli nie pamiętasz jak: cofnij się i sprawdź!) i otwórz go ponownie w vi, nie zapominając o opcji "tylko do odczytu": Jeśli nie pamiętasz jak to zrobić, cofnij się do początku i zapamiętaj to (raczej postaraj się to zapamiętać, niż zapisywać) c - wykonuj ćwiczenia a i b dotąd, aż osiągniesz wystarczająca praktykę UWAGA 1: w podręczniku tym jest dużo ćwiczeń: aby zapobiec uszkodzeniu tego pliku pamiętaj, aby otworzyć go z opcją vi "tylko do odczytu". UWAGA 2: pomysł, aby zamiast tego nie wykonywać ćwiczeń jest jeszcze gorszy. ________________________________________________________________________________ SPIS TREŚCI ________________________________________________________________________________ 0 WPROWADZENIE 0.0 CZYM jest vi? 0.1 DLACZEGO warto uczyć się vi? 0.2 JAK się uczyć vi? 1 ZACZYNAMY 1.0 Krok pierwszy: TRYB POLECEŃ i TRYB WSTAWIANIA 1.1 Podstawowe polecenia 1.2 Przemieszczanie się 1.3 Do roboty! 1.4 Wyszukiwanie tekstu 1.5 Polecenia set 2 INFORMACJE DODATKOWE 2.0 Pozostałe polecenia 2.1 Zamiana tekstów 2.2 Zapisywanie plików 2.3 Odczyt innych plików 2.4 Otwieranie kilku plików jednocześnie 2.5 Otwieranie plików w trybie tylko do odczytu 2.6 Polecenia powłoki 2.7 Daj mi powłokę! 2.8 Makropolecenia ________________________________________________________________________________ *** 0 WPROWADZENIE -- 0.0 CZYM jest vi? vi (pisany małymi literami) jest edytorem tekstów (oprogramowaniem) umożliwiającym zapis i modyfikację plików tekstowych. -- 0.1 DLACZEGO warto uczyć się vi? Dlaczego warto poświęcić czas na naukę niezbyt łatwgo edytora tekstowego, takiego jak vi, gdy istnieje tak wiele innych, łatwiejszych i bardziej przyjaznych edytorów? Istnieje kilka dobrych powodów: a - vi jest jedynym edytorem tekstowym, który na pewno znajdziesz na każdym komputerze z systemem UNIX/Linux; b - vi umożliwia edycję bardzo wielkich plików; c - vi posiada wyjątkowi duże możliwości; d - vi pozawla na szybkie i efektywne wykonanie wielu złożonych operacji. -- 0.2 JAK się uczyć vi? Stopniowo. Błędem jest próba nauczenia się wszystkiego naraz: w vi możesz zrobić wiele rzeczy, ale w rzeczywistości pracę można rozpocząć znając niewielką liczbę poleceń. Często łatwiej jest zapamiętać jednoliterowe polecenia, jeśli zauważysz, że w większości przypadków litera taka jest pierwszą literą słowa w języku angielskim, związanego w jakiś sposób z tym skrótem. *** 1 ZACZYNAMY -- 1.0 Krok pierwszy: TRYB POLECEŃ i TRYB WSTAWIANIA Należy sobie uzmysłowić, że vi pracuje w dwóch trybach: TRYBIE POLECEŃ i TRYBIE WSTAWIANIA: * w trybie poleceń wydajesz polecenia mówiące, co chcesz zrobić; * w trybie wstawiania wpisujesz tekst do pliku, który aktualnie edytujesz. Pyt- "Czy w pierwszych ćwiczeniach, które wykonywałem (wyjście z edytora, przejście do następnego i poprzedniego ekranu) wydawałem polecenia?" Odp- Tak. Pyt- "Po co to całe zamieszanie z trybem poleceń i wstawiania?" Odp- W rzeczywistości ułatwia to bardzo pracę, szczególnie gdy pracujesz w środowisku znakowym. Pyt- "Jak mogę się przełączać pomiędzy trybami poleceń i wstawiania?" Odp- Aby się przełączyć z trybu wstawiania do trybu poleceń wciśnij [ESC]. Aby dowiedzieć się, jak przełączyć się z powrotem do trybu wstawiania, przeczytaj rozdział 1.1 -- 1.1 Podstawowe polecenia INFORMACJA 0: w celu wydania POLECENIA, musisz być w TRYBIE POLECEŃ (stąd nazwa) W przypadku wątpliwości wciśnij klawisz [ESC]. Następujące polecenia przełączają z trybu poleceń do trybu wstawiania (masz możliwość wstawiania tekstu). iTekst (insert) wstawia łańcuch znaków "Tekst" zaczynając od pozycji kursora aTekst (append) dodaje łańcuch znaków "Tekst" oTekst (open) otwiera nowa pustą linię poniżej kursora i wstawia "Tekst" OTekst (open) otwiera nowa pustą linię powyżej kursora i wstawia "Tekst" INFORMACJA 1: vi rozróżnia wielkość liter. INFORMACJA 2: gdy skończysz pisać odpowiedni tekst, musisz o tym poinformować vi, w przeciwnym wypadku pozostaniesz 'in aeterno' (na zawsze) w trybie wstawiania. Pyt- "Jak wyjść z trybu wstawiania?" Odp- Wciśnij klawisz [ESC] Pyt- "To przełączy mnie do trybu poleceń?" Odp- Dokładnie. Nie ma innych trybów: jest albo tryb poleceń, albo wstawiania. INFORMACJA 3: Polecenia rozpoczynające się znakiem ":" pojawiają w ostatniej linii ekranu i wymagaja potwierdzenia klawiszem [ENTER]. Pozostałe polecenia nie pojawiają się na ekranie. Następujące polecenia również są często używane (pozostajesz w trybie poleceń): J (join) łączy aktualną linię z następująca po niej x usuwa znak, na którym znajduje się kursor u (undo) cofa ostatnią modyfikację... . ... powtarza ostatnią modyfikację :w (write) zapisuje aktualny plik (ten, który edytujesz) :w innyplik zapisuje zawartość do nowego pliku o nazwie "innyplik" :e innyplik wczytuje do edycji plik "innyplik" :q (quit) wyjście; jeśli nie zachowałeś na dysku zmian, zostaniesz poproszony o potwierdzenie :q! (quit!) wyjście bez zapisywania ostatnich modyfikacji :wq (write quit) zapisz i wyjdź :7 przemieszcza kursor do początku siódmej linii G przemieszcza kursor do końca pliku dd (delete) usuwa aktualną linię Ćwiczenia: a - przejdź do linii numer 98, a następnie do linii 206 b - przejdź do końca pliku używając polecenia G, a następnie wróc do linii 207 c - (inne ćwiczenia możesz znaleźć na końcu rozdziału 1.3, ale zalecane jest wcześniejsze przeczytanie rozdziału 1.2) -- 1.2 Przemieszczanie się Pyt- "Jak mogę wpisać tekst, tam gdzie ja chcę, a nie tam gdzie chce vi?" Odp- Przesuwając kursor w obrębie pliku. Klawisze, które w trybie poleceń mogą zostać użyte, to: h przesuwa kursor w lewo... j ...w dół k ...do góry l ...w prawo Zapraszamy do wykonania eksperymentów. Oczywiście, jeśli użyjesz powyższych klawiszy w trybie wstawiania, zobaczysz jak do pliku wpisywane są znaki hhjjjjjkkkllll... Pyt- "Ale ja nigdy nie zapamiętam tych wszystkich poleceń!" Odp- Spokojnie. Ponieważ wydaje mi się, że próbujesz używać klawiszy kursora (być może to działa, ale któż to wie!), chcę ci powiedzieć, że nie jest to najlepszym pomysłem: klawisze kursora nie zawsze działają. Pyt- "Dobrze, więc je zapiszę..." Odp- Chwileczkę. Zauważ, że klawisze hjkl są na klawiaturze ułożone kolejno. Klawisz "j" odnosi się do ruchu w dół; "k" - do góry; "h" jest z tej grupy najbardziej w lewo wysuniętym klawiszem (spójrz na klawiaturę); "l" najbardziej w prawo. Do szybszego przemieszczania kursora istnieją także inne polecenia: w (word) przesuwa kursor do początku następnego słowa b (backward) przesuwa kursor do początku poprzedniego słowa e (end) przesuwa kursor na koniec następnego słowa Ćwiczenia: a - sprawdź następujące klawisze: w, b, e, h, j, k, l -- 1.3 Do roboty! Zaczynamy zabawę z vi! Staraj się pamiętać, w którym trybie jesteś: jeśli nie jesteś tego pewien, wciśnij [ESC], a przejdziesz do trybu poleceń. Ćwiczenia: a - zapisz zawartość aktualnego pliku do pliku o nazwie junk.txt b - zapisz zawartość aktualnego pliku również do pliku o nazwie garbage.txt c - przejdź do edycji pliku junk.txt wychodząc wcześniej z edycji aktualnego pliku: wpisz z linii komend powłoki: vi junk.txt tym razem nie używaj opcji -Readonly, dzięki czemu będziesz miał pełną kontrolę nad plikiem junk.txt: wyszalej się na tym pliku, wykonując następujące ćwiczenia d - próbuj tworzyć nowe linie (poniżej/powyżej kursora) e - dodaj tekst używając poleceń "a" oraz "i": jakie są różnice? f - co się stanie, gdy w trybie WSTAWIANIA wciśniesz klawisz [ENTER] ? g - zachowaj plik junk.txt h - przenieś w dowolne miejsce kursor używając klawiszy h, j, k, l: działają? (pamiętasz, że możesz je używać wyłącznie w trybie poleceń? Jeśli nie jesteś pewnien, zawsze możesz wcisnąć klawisz [ESC]) i - przejdź do edycji pliku garbage.txt BEZ WYCHODZENIA z edycji pliku junk.txt: użyj polecenia :e garbage.txt i zamieszaj w nim wykonując następujące eksperymenty: j - połącz dwie linie (pamiętasz jakim poleceniem?) k - załóżmy, że połączyłeś złe linie: cofnij modyfikacje l - co stanie się, gdy spróbujesz cofnąć cofniętą zmianę? m - usuń jeden lub kilka znaków n - dodaj dwie linie tekstu o - spróbuj wykonać ćwiczenie "n" używając polecenia "." p - spróbuj usunąć linie używając polecenia "dd" q - kontynuuj ćwiczenia (w jednym z dwóch plików junk.txt lub garbage.txt) dotąd, aż swobodnie będziesz potrafić wykonywać powyższe ćwiczenia. Dobrze, a co z tworzeniem nowych plików? Jeżeli masz dostęp do innego okna (lub konsoli) z linią poleceń powłoki wpisz (jeśli nie masz dostępu, najpierw wyjdź z edycji tego pliku): vi filename (Chociaż jest to możliwe, nie jest zbyt dobrym pomysłem edycja tego samego pliku w dwóch różnych miejscach: nazwa pliku powinna więc różnić się od nazwy TEGO pliku) Pamiętaj, że NIE OTWIERASZ pliku z opcją "-Readonly". Jeśli plik ten już istnieje (a ty nie troszczysz się zbytnio o jego zawartość) możesz uszkodzić jego zawartość poprzez eksperymenty. Jeśli plik ten jest nowy (zalecane), zauważysz, że... Pyt- "Co to za dziwne znaczki, znajdujące się na początku każdej linijki?" Odp- znaczki te to 'tyldy', pokazujące koniec pliku. Widziałeś je również na końcu tego pliku. Jeśli twój plik jest pusty, zobaczysz same tyldy: ~ ~ ~ ~ Ćwiczenia: a - powtórz niektóre z powyższych ćwiczeń (a-q), a w szczególności: b - wstaw dowolny tekst w dowolnym miejscu c - tak przy okazji: czy działają polecenia h, j, k, l wówczas, gdy są tam znaki "~"? (nie chodzi o znajdujące się powyżej 4 znaki "~", ale o te na końcu pliku) -- 1.4 Wyszukiwanie tekstu Aby znaleźć tekst "per exemplum" wpisz (teraz!) polecenie: /per exemplum Polecenie to pojawi się w ostatniej linii ekranu. Jeśli tak się nie stanie, nie jesteś w trybie poleceń (więc wciśnij [ESC], aby do niego przejść). aby znaleźć następne wystąpienie wydaj polecnie n (next - następne) aby znaleźć poprzednie wystąpienie wciśnij N Szukanie wstecz jest identyczne, ale używa się ?per exemplum wtedy też zostaje zamienione znaczenie poleceń n i N. Ćwiczenia: a - znajdź wszystkie wystąpienia tekstu 'per exemplum' w tym pliku używając polecenia '/' i powtarzając wyszukiwanie przy pomocy 'n' oraz 'N' b - powtórz ćwiczenie "a" używając poleceń '?', 'n' oraz 'N' Wkrótce zauważysz, że wpisanie /PER EXEMPLUM lub /per eXemplum nie jest róważne wpisaniu /per exemplum Ta cecha vi wynika z faktu, że systemy UNIX rozróżniają wielkość liter. W pierwszej chwili wydaje się to irytujące, ale w rzeczywistości jest to bardzo wygodne. Teraz sprbuj wpisać /per e.emplum Zauważ, że zostanie znalezione zarówno "per exemplum" jak i "per eXemplum" (nawet znajdziesz tekst "per eZemplum"), ale nie "PER EXEMPLUM". Kropka oznacza więc (przy wyszukiwaniu) dowolny znak. Pyt- "A jeśli zechcę znaleźć tekst 'per e.emplum'?" Odp- Spróbuj /per e\.emplum Ogólnie mówiąc, istnieją znaki specjalne, traktowane przez vi w szczególny sposób. Aby vi znaki te potraktował w sposób standardowy, wystarczy przed nimi wstawić znak '\'. Na przykład: znak "*" również jest znakiem specjalnym; aby znaleźć początek każdego rozdziału oznaczony jako '***', wpisz: /\*\*\* Pyt- "Co stanie się, jeśli przez lenistwo wpiszę:" /\*\* Odp- Sprawdź. Jak sam widzisz lenistwo nie opłaca się. Ponieważ sam jestem leniwy, proponuję ci sprawdzenie następującego wyrażenia: /\*\* Pyt- "Przecież to to samo!" Odp- Nie, po ostatniej gwiazdce została dodana spacja. Sprawdź to (aby wrócić do tego miejsca poszukaj tekstu 'Przecież to to samo'). W edytorze vi możesz zobaczyć ukryte znaki: jeśli zainsteresowało cię to, poszukaj tekstu 'Polecenia set' Pyt- "Czy również '\' jest znakiem specjalnym?" Odp- Tak. Spróbuj znaleźć tekst 'per e\.emplum'. Zanim się wkurzysz, wpisz /per e\\\.emplum '/' jest również znakiem specjalnym: aby znaleźć '/' musisz wpisać /\/ Ćwiczenia: a - znajdź tekst '\*\*\*' i 'per e\\\.emplum' b - znajdź początek każdego paragrafu, oznaczonego przy pomocy '--', ale tak aby nie zostało odnalezione to ćwiczenie. Czy '-' jest znakiem specjalnym? c - znajdź tekst "--" znajdujący się w poprzednim ćwieczeniu, ale tak aby nie został odnaleziony żaden paragraf ani to ćwiczenie. Czy apostrof (') jest znakiem specjalnym? Czy cudzysłów jest? d - Co stanie się, jeśli uruchomisz następujące wyszukiwanie? (Sprawdź!) /... .X...... /... .X /.....X Czy ostatni ciąg wyszukujący różni się od przedostatniego? e - znajdź tekst '../images' bez odnajdywania './somedir/images' -- 1.5 Polecenia set iAby zobaczyć znaki ukryte spróbuj (w trybie poleceń) wpisać :set list Znaki '$', które właśnie się pojawiły pokazują koniec każdej linii i ewentualnie spacje (tak jak na końcu tej linii). Aby cofnąć to polecenie, wpisz: :set nolist Aby włączyć (lub wyłączyć) numerację linii, wpisz: :set number :set nonumber Aby widzieć (lub nie) tryb, w jakim aktualnie znajduje się vi (tekst pojawiający się na dole ekranu) :set showmode :set noshowmode Ponieważ vi słynie raczej z krótkich poleceń, istnieją również krótsza składnia (posiadająca to samo znaczenie): :set li :set noli :set nu :set nonu :set smd :set nosmd Ćwiczenia: a - Sprawdź, co stanie się, gdy wpiszesz: :set nu li smd :set nu noli smd *** 2 INFORMACJE DODATKOWE -- 2.0 Pozostałe polecenia Następujace polecenia tak naprawdę nie są niezbędne: będziesz się ich uczył krok po kroku, ale powinieneś mieć świadomość ich istnienia. ITekst (insert) wstawia ciąg "Tekst" na początku aktualnej linii ATekst (append) dodaje ciąg "Tekst" na końcu aktualnej linii dw (delete word) usuwa aktualne słowo, poczynając od pozycji kursora (pozostajesz w trybie poleceń) cw (change word) zamienia aktualne słowo, poczynając od pozycji kursora (przełącza w tryb wstawiania) 5dw usuwa 5 słów 5cw zmienia 5 słów s (substitute) zamienia znak, wskazywany przez kursor (przełącza w tryb wstawiania) 5s zamienia 5 znaków poczynając od pozycji kursora x usuwa znak wskazywany przez kursor 5x usuwa 5 znaków poczynając od pozycji kursora dd (delete) usuwa aktualną linię 5dd usuwa 5 linii, zaczynając od linii bieżącej :18,22d usuwa 5 linii (od 18 do 22 włącznie) D usuwa tekst od pozycji kursora do końca linii cc (change) zmienia tekst w aktualnej linii (kasuje linię i przechodzi do trybu wstawiania) 5cc zmienia 5 liniii, poczynając od aktualnej :18,22c zmienia linie od 18 do 22 włącznie C zmienia pozostałą część linii ZZ zapisuje (jeśli są zmiany do zapisania) i wychodzi yw (yank) zapisuje do bufora aktualne słowo yy zapisuje do bufora aktualną linię 5yy zapisuje do bufora 5 linii, zaczynając od aktualnej UWAGA: gdy kopiujesz (yank) lub usuwasz jakiś tekst, pozostaje on w buforze, skąd może być wykorzystany np do kopiowania: p (print) wstawia linię lub słowo znajdujące się w buforze. 0 (zero) przenosi kursor do początku linii $ przenosi kursor na koniec linii :$ przenosi kursor na koniec pliku (tak jak G) ^ przenosi kursor do pierwszego znaku w linii (pomijając tzw. białe znaki) 7| przenosi kursor do siódmego znaku w linii H (high) przenosi kursor do pierwszej linii ekranu L (low) przenosi kursor do ostatniej linii ekranu M (middle) przenosi kursor do środka ekranu [CTRL] u (up) przechodzi w górę o pół ekranu [CTRL] d (down) przechodzi w dół o pół ekranu [CTRL] y przesuwa ekran w górę, nie przemieszczając kursora [CTRL] e przesuwa ekran w dół, nie przemieszczając kursrora [CTRL] g wypisuje informacje o aktualnym pliku [CTRL] l odświeża zawartość ekranu [CTRL] h move the cursor backward in case of some modification (you can use it in insert mode, too) fx (find) szuka następnego znaku "x" w aktualnej linii ; szuka następnego znaku "x" w aktualnej linii , szuka poprzedniego znaku "x" w aktualnej linii Fx (Find) szuka poprzedniego znaku "x" w aktualnej linii ; szuka poprzedniego znaku "x" w aktualnej linii , szuka następnegp znaku "x" w aktualnej linii Ćwieczenia: a - sprawdź działanie następujących rozkazów (aby wrócić do tego miejsca znajdź tekst "Ćwiczenia") 0, $, :$, ^, 3|, H, L, M b - sprawdź polecenia [CTRL] u, [CTRL] d, [CTRL] y, [CTRL] e, [CTRL] g, [CTRL] l, [CTRL] h c - umieść kursor w poprzedniej linii i znajdź wszystkie "T" urżywając poleceń f i F d - [CTRL] h jest szczególnym poleceniem: d1) w trybie wstawianie możesz korygować tekst wciąż POZOSTAJĄC w trybie wstawiania; d2) w trybie poleceń możesz korygować nieprawidłowo wpisane polecenia. Wykonaj kilka ćwiczeń: sprawdź działanie d1) wpisz tekst i skoryguj go NIE PRZECHODZĄC do trybu poleceń na przykład wpisz ZłyTekst i popraw go na DobryTekst NIE PRZECHODZĄC do trybu poleceń. sprawdź d2) Skoryguj polecenie takie jak :set li (chciałeś wpisać :set nu). Skoryguj polecenie /ZłyTekst na /DobryTekst bez wpisywania polecenia od początku. e - polecenia yy oraz dd używane z p, są często wykorzystywane: spróbuj skopiować lub przenieść jedną lub kilka linii tekstu: umieść kursor w pierwszej linii tekstu, który chcesz skopiować, wpisz np. 3yy, przesuń kursor do miejsca, gdzie chcesz wstawić skopiowana linie i wciśnij p. Gdzie pojawiły się nowe linie? (aby przenieść tekst, użyj 3dd,p). f - zachęcamy, jeśli nie do nauczenia się tych poleceń, to przynajmniej do sprawdzenia, że polecenia te umożliwiają modyfikację pliku (do eksperymentów użyj innego pliku) -- 2.1 Zamiana tekstów Aby zamienić "stary tekst" na "nowy tekst", możesz użyć poleceń: :s/stary tekst/nowy tekst jeśli w aktualnej linii znajdują się ciągi "stary tekst", zostanie zamieniony tylko pierwszy. :s/stary tekst/nowy tekst/g zamienia wsystkie wystąpienia ciągu "stary tekst" w aktualnej linii UWAGA: polecenie /g jest opcjonalne: pominięcie go spowoduje, że zostanie zamieniony tylko pierwszy ciąg "stary tekst" w każdej linii: :1,9s/stary tekst/nowy tekst/g zamienia wszystkie wystąpienia ciągu "stary tekst" w liniach od 1 do 9 :7,$s/stary tekst/nowy tekst/g zamienia wszystkie wystąpienia ciągu "stary tekst" w liniach od 7 do końca pliku :%s/stary tekst/nowy tekst/g zamienia wszystkie wystąpienia ciągu "stary tekst" w pliku -- 2.2 Zapisywanie plików Wiesz już, że jeśli edytujesz plik "nowy", :w zapisuje modyfikacje w aktualnym pliku "nowy" :w inny zapisuje zawartość aktualnego pliku do pliku o nazwie "inny" Również możesz wykonać: :3,9w inny zapisuje linie od 3 do 9 włącznie aktualnego pliku do pliku o nazwie "inny" Jeśli "inny" już istnieje :w! inny nadpisuje zawartość pliku "inny" :w>>inny dopisuje zawartość aktualnego pliku na koniec pliku "inny" :3,9w>>inny dopisuje na koniec pliku "inny" linie od 3 do 9 włącznie z aktualnego pliku :e inny wczytuje do edycji plik "inny" Ćwiczenia: a - używając poprzednich poleceń, korzystając z tego pliku stwórz nowy plik zawierający spis poleceń vi, które będziesz częściej wykorzystywał. Podpowiedź: włącz numerowanie linii i wykorzystaj informacje z paragrafu 2.2 -- 2.3 Odczyt innych plików Jeśli chcesz dołączyć w określonym miejscu jedengo pliku zawartość innego pliku, możesz użyć polecenia :r innyplik wstawia zawartość pliku "innyplik" od następnej linii, w której znajduje się kursor Ćwiczenia: a - używając dwóch niepotrzebnych plików sprawdź działanie polecenia :r -- 2.4 Otwieranie kilku plików jednocześnie Używając vi możesz edytować kilka różnych plików jednocześnie, używając vi pierwszyplik drugiplik trzeciplik [...] Edytor vi pozwala na edycjię tych plików jeden po drugim: na początku zobaczysz "pierwszyplik", następnie używając polecenia :n (next - następny) możesz się przełączyć na drugi plik, a następnie na trzeci. Aby przełączyć się na plik poprzedni, wpisz :N UWAGA: Łatwiej zapamiętasz te polecenia, jeśli zauważysz, że są one podobne do wyszukiwania tekstu, ale używa się dodatkowo ":" Pyt- "Do czego potrzebne mi jest edytowanie kilku plików?" Odp- Ponieważ czasami trzeba wykonać takie same operacje na różnych plikach (wyszukiwanie, modyfikacje, zamiana tekstów ...). Wykorzystując tą cechę vi, możesz zrobić to bardzo szybko. -- 2.5 Otwieranie plików w trybie tylko do odczytu Wiesz już, że możesz użyć opcji -Readonly : vi -Readonly plik Możesz również użyć krótszego zapisu: vi -R plik Przy użyciu opcji -R (również -Readonly) możesz otworzyć kilka plików: vi -R pierwszyplik drugiplik trzeciplik [...] -- 2.6 Polecenia powłoki Pyt- "iCo to jest powłoka?" Odp - Jest to interpreter poleceń. Jest pośrednikiem między tobą a systemem operacyjnym. W celu wykonania dowolnego polecenia, musisz poprzedzić go ":!". Np. jeśli używasz systemu UNIX i chcesz wykonać polecenie "ls" bez opuszczania vi, wpisz (w trybiue poleceń) :!ls (Oczywiście, jeśli nie używasz systemu UNIX, musisz użyć poleceń swojego systemu!) Ćwiczenia: a - wywołaj polecenia systemu operacyjnego (ale nie usuwaj tego pliku!) b - sprawdź co stanie przy wykonywaniu połączonych w potok poleceń (przy użyciu "|"), np. (w systemie UNIX): :!ps -ef | grep vi c - jeśli twój system umożliwia wykonanie kolejno kilku poleceń, spróbuj jak działa to w vi, wpisując np. (w systemi UNIX): :!pwd; ls -l; ps -ef | grep vi d - pomyliłeś się i wcisnąłeś za długo klawisz ENTER - wynik działania poprzedniego polecenia zniknął! Ponów je! Podpowiedź: użyj :!! Pyt- "Czy mogę w vi wykonać wszystko to, co z linii poleceń?" Odp- Tak -- 2.7 Daj mi powłokę! Aby podczas edycji pliku uzyskać dostęp do powłoki wpisz (w trybie poleceń) :sh Aby powrócić do vi, zamknij powłokę (wpisz exit lub wciśnij CTRL+D). Edytowany plik powinien się ponownie pojawić w edytorze. Nie bój się. Spróbuj! Pyt- "Co mogę zrobić przy pomocy powłoki?" Odp- Możesz wykonać wszytskie polecenia systemu operacyjnego. Np. możesz uruchomić edycję drugiego pliku wpisując: ci drugiplik Oczywiście, możesz następnie otworzyć nową powłokę, w której możesz uruchomić edycję trzeciego pliku: vi trzeciplik Możesz następnie uruchomić nową powłokę, itd. -- 2.8 Makropolecenia Czy próbowałeś kiedykolwiek, używając swojego edytora, usunąć ostatni znak z każdej linii? (np. w liczącym 4000 linie kodu programie...) Edytor vi umożliwia szybkie wykonanie tego (i wielu innych rzeczy) używając makropoleceń. Niestety, makropolecenia wykraczają poza ten podręcznik: jeśli jednak czujesz nieodpartą chęć poznania innych poleceń vi, znaczy to, że definitywnie zostałeś nawrócony na vi i możesz samodzielnie pogłębiać swoją wiedzę. ________________________________________________________________________________ Copyright (C) 1999 - Massimo Pilolli, Modena - ITALY maxpilolli@yahoo.com Stefania Perrucci, Modena - ITALY http://www.navigare.org/vi-muman.uk Tłumaczenie: 2001 - Robert Litwiniec, Zamość - POLSKA linio@gnu.pl http://asterix.wonder.pl This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; see the GNU General Public License for more details.