Edytor tekstowy vi 1. Cel ćwiczenia Celem ćwiczenia jest
Transkrypt
Edytor tekstowy vi 1. Cel ćwiczenia Celem ćwiczenia jest
Edytor tekstowy vi 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z działaniem edytora tekstowego vi stosowanego w systemach UNIX i kompatybilnego z systemami POSIX, QNX. 2. Wstęp teoretyczny W edytorze są dwa tryby pracy: tryb wydawania komend oraz tryb edycji. W trybie edycji wszystkie klawisze działają zgodnie z intuicją. W trybie komend niektóre z klawiszy mają szczególne znaczenie. Do trybu komend przechodzi się klawiszem Esc. Do trybu edycji przechodzi się automatycznie po niektórych komendach. Edytor uruchamia komenda vi [parametr] nazwa_pliku Lista parametrów: -e uruchomienie trybu wprowadzania komend, -f otwiera pliki specjalne, -i uruchomienie trybu normalnej edycji, -m skanuje plik w poszukiwaniu błędów, -R otwarcie pliku w trybie odczytu bez możliwości zmian. 2.1. Tryb edycji Wstawianie tekstu a umieści tekst za kursorem, A umieści tekst na końcu bieżącej linii, i wstawi tekst przed kursorem, I wstawi tekst na początku bieżącej linii, o wstawi nową linię poniżej pozycji kursora, O wstawi nową linię powyżej pozycji kursora, Operatory c zmienia, d usuwa, y kopiuje, > przesuwa w prawo, < przesuwa w lewo, p wkleja. Poniższa lista przedstawia składnie form w jakich stosuje się operatory. Zapis dotyczący liczby linii w kwadratowym nawiasie jest opcjonalny. [n]cc zmienia n linii [n]dd usuwa n linii [n]yy kopiuje n linii [n]<< przesuwa w lewo n linii [n]>> przesuwa w prawo n linii Operator c zmienia tekst pomiędzy bieżącą pozycją kursora, a pozycją wskazywaną przez objekt, np c2w – zmieni następne dwa wyrazy. [n]cc zmienia n linii, R zastępuje resztę linii tekstem, s zastępuje bieżący znak, jak polecenie c1, S zastępuje bieżącą linię, jak polecenie cc. W trybie normalnego wprowadzania tekstu wszystkie klawisze służą do wstawiania tekstu w miejscu gdzie znajduje się obecnie kursor za wyjątkiem poniższych: Esc, Ctrl+[ przejście do trybu poleceń, Ctrl+H usuwa znak przed kursorem, Ctrl+W usuwa ostatnio wprowadzone słowo, Ctrl+A wstawia kopie ostatnio wprowadzonego tekstu Ctrl+D usuwa akapit, Ctrl+L, Ctrl+R odświeża ekran, Enter, Ctrl+M wstawia nową linię, Ctrl+P wstawia tekst zapisany w buforze Ctrl+T tworzy akapit, Ctrl+U wraca do początku linii, 2.2. Tryb komend Większość komend rozpoczyna dwukropek. Wyjście i zapis :q! :w :wq, :x, zz Ustawienia kursora [n]h, ←, backspace [n]l, →, space [n]k, ↑, Ctrl+P [n]j, ↓, Ctrl+J, Ctrl+N wyjście bez zapisania zmian, zapisuje dokonane zmiany, wyjście z zapisaniem zmian, przesuwa kursor w lewo, przesuwa kursor w prawo, przesuwa kursor do góry, przesuwa kursor w dół, [n]Ctrl+B przewija stronę do tyłu, [n]Ctrl+F przewija stronę do przodu, [n]$ przesuwa kursor na koniec linii, ^ przesuwa kursor na początek linii, [n]w przesuwa kursor na początek następnego wyrazu, [n]W przesuwa kursor na początek następnego wyrazu poprzedzonego znakiem spacji, [n]b przesuwa kursor do poprzedniego wyrazu, [n]B przesuwa kursor do poprzedniego wyrazu oddzielonego znakiem spacji, [n]e [n]E [n]G [n]f<znak> [n]F<znak> [n]H [n]L M [n]; [n], przesuwa kursor na koniec wyrazu, przesuwa kursor na koniec wyrazu oddzielonego znakiem spacji przesuwa kursor do konkretnej linii domyślnie do ostatniej linii w pliku, przesuwa do konkretnego znaku do przodu w bieżącej linii, przesuwa do konkretnego znaku do tyłu w bieżącej linii, przesuwa kursor do pierwszej linii u góry ekranu, przesuwa kursor do ostatniej linii na dole ekranu, przesuwa kursor do środkowej linii na ekranie, powtarza komendy f, F w tym samym kierunku, powtarza komendy f, F w przeciwnym kierunku. Kopiowanie yy yw 4yy, 4yj kopiuje bieżącą linię, kopiuje od kursora do końca bieżącego słowa, kopiuje 4 następne linie. Usuwanie dd usuwa bieżącą linię, dw usuwa od kursora do końca bieżącego słowa, 4dd, 4dj usuwa 4 kolejne linie. Wklejanie P wkleja tekst przed kursorem, p wkleja tekst za kursorem. Przesuwanie tekstu > przesuń w prawo, < przesuń w lewo, [n]>> przesuń n linii w prawo, [n]<< przesuń n linii w lewo. Wyszukiwanie /[wzór] Enter /Enter ?[wzór] Enter ?Enter n przeszukaj dokument do przodu, powtórz szukanie do przodu, przeszukaj dokument wstecz, powtórz szukanie wstecz, powtórz szukanie, Zastępowanie tekstu :[x,y]s/tekst_oryginalny/zastąp_tekstem/[c] [g] [p] Jeśli parametry c, g, p nie są podane ta komenda zamieni pierwszy znaleziony fragment tekstu. c pyta przed zastąpieniem, g zastępuje wszystkie pasujące fragmenty w linii, p wyświetla wszystkie linie zawierające zastąpiony tekst. Edycja innych plików :e nazwa_pliku edytuje wskazany plik, :e! nazwa_pliku nie zapisując zmian opuszcza edytowany plik i edytuje wskazany, :e # wraca do poprzednio edytowanego pliku, Opcje edytora :set all pokazuje listę opcji oraz wartości domyślne, Inne przykładowe opcje to: :set showmode pokazuje w prawym dolnym rogu tryb pracy edytora, :set -o vi umożliwia dostęp do vi w wierszu poleceń, :set number pokazuje numery linii. Pozostałe komendy :sh wyjście do powłoki, :!komenda uruchamia komendę, potem powraca do edytora, [n]. powtarza ostatnio wykonaną komendę, u cofnij ostatnią komendę, U cofnij ostatnią zmianę tekstu, D usuwa od kursora do końca linii, [n]J dołącza następną linię do bieżącej, :[x,y]j łączy linie z podanego zakresu, [n]x usuwa n znaków od kursora w prawo, [n]X usuwa n znaków od kursora w lewo. [n]~ zmienia wielość n liter, [x,y]p wyświetla tekst z podanego zakresu linii, [x,y]nu wyświetla tekst wraz z numerami linii wskazanych w zakresie, 3. Zadania do wykonania Uruchomić edytor na dowolnym pliku, lub stworzyć nowy i zapoznać się z praktycznym działaniem komend. Wszystkie operacje przeprowadzone na ćwiczeniu udokumentować w sprawozdaniu.