Linux Corner
Strona główna
Redakcja
Texty
Listy
Linki
Powrót do AM

Vi jest edytorem ekranowym. Pamięta baardzo dawne czasy. Używane wcześniej edytory wierszowe pozwalały wyświetlać obrabiany plik po jednym wierszu. vi dał możliwość wyświetlania całego ekranu textu. Wprowadzając nowy standard pracy zasłużył sobie na przydomek "wizualny". W następnych kilku akapitach przedstawię sposób korzystania z vi oraz opisze jego polecenia.

Wersja edytora vi dostarczana z systemem GNU/Linux, to tak zwany vim - vi improved (nie tylko, bo jest także kilka innych odmian VI - m.in. Elvis). W stosunku do klasycznego oferuje dodatkowo: wielopoziomowe cofanie ostatnich operacji, podświetlanie składni w źródłach programów, rozbudowany system pomoc i wiele innych.

vi może pracować w jedym z dwóch trybów: wprowadzania znaków i wydawania poleceń. W każdym z nich poszczególne klawisze mają inne znaczenie. Kilka spośród nich służy do przełączania się między trybami. Tryb wprowadzania znaków służy do wpisywania i dopisywania textu. Tryb wydawania poleceń służy do usuwania textu, przenoszenia i powielania, wyszukiwania textu itd. Edytor uruchamia się w trybie wydawania poleceń. Tryb wprowadzania znaków uaktywnia polecenie i lub a. Tryb wydawanie poleceń ukatywania komenda Ecs. Wyjście z programu z zapisem następuje, gdy wpiszemy ZZ (lub :wq). Aby wyjść bez zapisu, wpisujemy ZQ (:q!).

Poniżej macie opisane elementarne polecenia.

  • i - uaktywania tryb wpisywania znaków;
  • a - uaktywania tryb dopisywania znaków;
  • Esc - powraca do trybu wydawania poleceń;
  • K - poprzedni wers;
  • j - następny wers;
  • h - poprzedni znak;
  • i - następny znak;
  • x - usuwa znak pod kursorem;
  • dd - usuwa bieżący wiersz;
  • J - łączy bieżący wiersz z następnym;
  • ZZ - wychodzi z programu i zapisuje zmiany;
  • ZQ - wychodzi z programu bez zapisywania zmian;

Wiadomości podane powyżej wystarczą na korzystanie z vi, tylko wtedy, kiedy niemamy wyboru lub mamy po prostu napisać linijkę textu. Aby używać vi w praktyce należy wiedzieć o nim więcej. Postanowiłem więc szerzej opisać ten wspaniały edytor.

Aby na codzień wygodnie korzystać z programu, należy go najpierw skonfigurować. Właśnie konfiguracją zajmę się w tym akapicie. vi możemy konfigurować poprzez wydawanie odpowiednich poleceń z obrębu programu, wywołując go z podaniem opcji lub poprzez plik konfiguracyjny. Najwygodniej jest założyć w naszym katalogu domowym oraz w katalogach z różnymi dokumentami tekstowymi plik konfiguracyjny vi o nazwie .vimrc . W katalogach z plikami tekstowymi możemy umieścić pliki .vimrc o treści:

:set textwidth=76
:set tabstop=4
:set expandtab
:set autoindent

Mógłbym tutaj rospisywać się na temat co oznacza ten skrypt, ale napiszę tylko, że opcja textwidth=76 mówi o tym, że wers będzie łamany najdalej za siediemdziesiątą szóstą kolumną. Opcja tabstop=4 ustala szerokość tabulacji na cztery kolumny, a opcja expandtab zmienia znaki tabulacji w tekście na odpowiednią liczbę znaków odstępu. Z koleji opcja autoindent powoduje automatyczne wyrównywanie wcięcia akapitu do wcięcia pierwszego wersu.

Teraz chcę opisać ograniczniki. Służą one do przemieszczania kursora w tekście od aktualnego położenia do określonego miejsca. Stosowane z innymi poleceniami wyznaczają granicę zakresu działania polecenia (drugą granicę wyznacza akutalne położenie kursora). Oto ograniczniki:

  • gg - pierwszy wers pliku;
  • nG - n-ty wers pliku;
  • G - koniec pliku;
  • CTRL+B - cofnięcie o okno do tyłu;
  • CTRL+F - posunięcie o okno do przodu;
  • k - poprzedni wers;
  • j - następny wers;
  • h - poprzedni znak;
  • i - następny znak;
  • - - początek poprzedniego wersu;
  • + - początek następnego wersu;
  • O - początek bieżącego wersu;
  • $ - koniec bieżącego wersu;
  • { - poprzedni akapit;
  • } - następny akapit;
  • ( - poprzednie zdanie;
  • ) - następne zdanie;
  • b lub B - poprzednie słowo;
  • w lub W - następne słowo;
  • " - poprzednia pozycja;

A teraz czas na znaczniki. Pozwalają one na przemieszczanie sie do oznaczonych nimi miejsc w tekście. Znaczniki mają nazwy jednoliterowe (a-z i A-Z).

  • mx - wstawia znaczniki;
  • x - przechodzi do znacznika x;
  • mm - szybkie wstawiasnie znacznika;
  • 'm - skos do znacznika mm;

Były już znaczniki, konfiguracja, polecenia... czas na powtórzenia. Polecenia można poprzedzać współczynnikiem liczbowym określającym ilość powtórzeń danego polecenia zadaną do wykonania. Np. polecenie 3{ (oznacza "trzy akapity od tyłu"). Mógłbym tu podawać wiele przykładów, ale mam nadzieję, że napisze ten text przez tą noc, więc nie będę tu się rozpisywał.

Teraz sprawa usuwania, kopiowania i wstawiania fragemntów textu. Poniżej podaje polecenia, które służą do usuwania, przenoszenia i kopiowania fragmentów textu.

  • X - usuwa znak przed kursorem;
  • x - usuwa znak pod kursorem;
  • dd - usuwa bieżący wiersz;
  • J - usuwa znak końca linix (łączy bieżący wers z następnym);
  • dx - usuwa znaki od kursora do ogranicznika x;
  • d'x - usuwa znaki od kursora do znacznika x;
  • yy - kopije bieżący wers do ukrytego bufora;
  • yx - kopiuje zadany fragment textu to ukrytego buforma (od bieżącego położenia kursora do ogranicznika x);
  • y'x - kopiuje zadany fragment textu do ukrytego bufora (od bieżącego położenia kursora do znacznika x);
  • P - wstawia usunięty text przed kursorem lub przed bieżącym wersem;
  • p - wstawia usunięty text za kursorem lub za bieżącym wersem;

Czas na cofanie i przywracanie ostatniej operacji.

  • u - cofa ostatnią operację;
  • CTRL+R - przywraca cofniętą operację;

To co? Zajmiemy się teraz szukaniem łańcuchów znaków? Pewnie, że się zajmiemy.

  • ?abc Enter - szuka łańcucha abc przed kursorem;
  • /abc Enter - szuka łańcucha abc za kursorem;
  • N - powtarza szukanie do tyłu;
  • n - powtarza szukanie do przodu;
  • % - szuka nawiasu do pary;

W poleceniach szukania możemy korzystać z wyrażeń regularnych:

  • . - dowolny znak;
  • ^ - początek wersu;
  • $ - koniec wersu;
  • \< - początek słowa;
  • \> - koniec słowa
  • [a-z] - dowolny znak z podanego zakresu;
  • [A-Z, a-z] - dowolny znak z podanych zakresów;
  • [^a-z] - dowolny znak spoza podanego zakresu;
  • * - zero lub więcej wystąpień poprzedzajcego znaku;

Poniższe polecenia służą do wyszukiwania wersów i słów zaczynających sie lub kończących określonymi łańcuchami znaków:

  • /^abc - szuka wersów zaczynających się literami abc;
  • /abc$ - szuka słów zaczynających sie literami abc;
  • /abc\< szuka słów kończących się literami abc;

Vi może także powtarzać ostatnią operację.

  • . - powtarza ostatnie polecnie;

Opiszę jeszcze pomoc w vi i kończę ten text, bo już mi ręce mdleją.

  • F1 lub :help - wyświetla informacje o poleceniach i opcjach edytora;
  • :help xyz - wyświetla informacje o poleceniu xyz;
  • CTRL+g - wyświetla w lini stanu informację o aktualnej pozycji kursora w pliku i całkowitej liczbie wersób;

UWAGA: polecenia do obsługi systemu pomocy wywołują edytor ex - wyjście z trybu pomocy umożliwia komenda q i :q . Wraz z edytorem dostajemy podręcznik dla początkujących. W celu udoskonalenia umiejętności pracy z programem, warto skorzystać z podręcznika, uuchamiając edytor poleceniem: vimtutor . Jeśli dla posiadanej przez Was wersji edytora polecenie to nie chce działać, sprawdźcie położenie pliku tutor poleceniem: locate tutor | grep vim . Prawdopodobnie znajdziemy ten plik w katalogu /usr/share/vim/tutor/. Robimy kopię pliku tutor w katalogu domowym i uruchamiamy edytor poleceniem: vi tutor .

Napisałem o podręczniku ze względu na to, że ręca mi już mdleją, jest szósta nad ranem, a przez caluchną noc pisałem ten text i nie mialem czasu się wyspać. Życzę miłego użytkowania vi, pozdrawiam i idę spać.

Grzegorz "PaCan" Pacan
pacan_ardix@go2.pl


Copyright (c) 2001 Linux Corner by Tilk & PaCan
Wszystkie prawa zastrzeżone.