Vi - podstawy

Podobno najczęstsze pytanie o edytor vi, to ,,jak wyjść z edytora vi''? Możesz zrobić to naciskając kilka razy ESC (dla pewności) a następnie:

:q!

i nacisnąć enter. Jeżeli chciałbyś poznać nieco więcej, czytaj dalej.

1 Po co używać Vi?

Jeśli wykorzystujesz komputer do pracy z tekstem, to musisz wiedzieć co to jest edytor tekstu. Wbrew pozorom nie jest nim (jako tako) Word (on jest procesorem tekstu, a edycja jest ,,przy okazji''). Edytor to narzędzie do wprowadzania i modyfikacji tekstu. Jeśli dużo pracujesz z tekstem, to wybór odpowiedniego edytora ma ogromne znaczenie. Moim zdaniem używanie procesora tekstu do edycji dużych tekstów jest nieporozumieniem z dwóch powodów:

  1. wydajność,
  2. rozdzielenie składu tekstu od jego edycji.

Pierwszy problem zauważył każdy, kto musiał pracować z dokumentem mającym więcej niż 100 stron (np 1000 stron). Przewijanie, przeszukiwanie takiego dokumentu potrafi doprowadzić do rozpaczy. Wynika to z tego, że procesor tekstu typu WYSIWYG (czyli każdy popularny procesor) przy każdej większej modyfikacji musi ponownie złożyć tekst przynajmniej od miejsca zmian.

Drugi problem polega na tym, że jeżeli na bierząco widzisz sformatowany tekst nad którym pracujesz, odciąga to uwagę od jego zawartości merytorycznej. Zamiast pracować nad tekstem bawisz się czcionkami, interliniami, kerningiem, nagłówkami i wszystkim, czym nie powinnaś.

Wreszcie - porządne edytory posiadają dużo skrótów i ułatwień służących stricte do edycji tekstu. Ale o tym - poźniej.

Vi jest jednym z popularniejszych edytorów tekstu, dlatego warto go znać. Przede wszystkim dlatego, że na każdym UNIX-o podobnym systemie jest zainstalowany. Jeśli więc administrujesz sytemami - będziesz go potrzebować. Drugim powodem jest to, że jest to dobry edytor z dużym doświadczeniem. Wreszcie - i najważniejsze - jeśli zaczniesz używać najlepszego edytora - emacsa, nie znając Vi, to zwolennicy Vi będą wciskać, że Vi jest lepszy i używasz emacsa, bo nie potrafisz używać Vi:)

2 tryby użytkowania

Vi różni się od innych edytorów tym, że praca rozdzielona jest na dwa tryby - tryb komand i tryb edycji. Tryb komand służy do poruszania się po tekście i wykonywania na tekście takich operacji kopiowanie, wstawianie itd. Na początku może wydawać się to dziwne, jednak z czasem można się przyzwyczaić i, o dziwo, pozwala to na bardzo sprawą pracę.

Domyślnie Vi uruchamia się w trybie komand. Tutaj możesz używać klawiatury do poruszania się po tekście, wklejania, kopiowania itd. Jeśli jesteś w tym trybie uważaj - łatwo przypadkowo usunąć sobie większy lub mniejszy fragment tekstu. Aby przejść do trybu komand, zawsze możesz użyć klawisza ESC. Aby przejść do trybu edycji, użyj jednego z przeznaczonych do tego klawiszy (zobacz dalej).

3 nawigacja

W trybie komand możesz poruszać się po tekście. Służą do tego strzałki kierunkowe, jeśli działają oraz klawisze h,j,k,l. Intuicyjne?

klawisz działanie
h,l przesuwanie kursora w lewo/prawo
j przesunięcie w dół (jump down)
k przesunięcie w górę
$ przesunięcie na koniec linii
1G przesunięcie na początek dokumentu; można użyć innej liczby, by przejść do odpowiedniej linii. Bez żadnej liczby - idzie na koniec dokumentu

Jakoś można się do tego przyzwyczać, a może się przydać przy zdalnym logowaniu na konsolę serwera, gdzie nie działają strzałki kierunkowe.

4 edycja

Jeżeli chcesz ręcznie wprowadzić - zmienić tekst, musisz przejść do trybu edycji. Można zrobić to na wiele sposobów, najczęściej żywanym jest wciśnięcie jednej z liter i,I,a,A,o lub O. Intuicyjne?

Gdy skończysz edycję, klawiszem ESC możesz wrócić do trybu komand.

Po co aż tyle klawiszy do przejścia do trybu edycji? Bo każdy robi to w inny sposób:

klawisz działanie  
i zaczniesz wstawiać tekst na lewo od kursora  
I edycja na początku bieżącej linii  
a wstawianie tekstu w miejscu kursora  
A wstawianie tekstu na końcu bierzącej linii  
o utworzenie pustej linii poniżej bieżącej i wstawianie w niej tekstu  
O utworzenie pustej linii powyżej bieżącej i wstawianie w niej tekstu  

Gdy jesteś w trybie edycji, klawisze działają zgodnie z oczekiwaniem. Możesz poruszać się po tekście, jeśli działają strzałki, możesz też klawiszem ESC wrócić do trybu komand.

Wreszcie, ważny element - zapisywanie pliku. Można to zrobić poleceniem:

:w nazwapliku

przy czym edytujesz istniejący plik (lub już wcześniej podałeś mu nazwę), to ,,nazwapliku'' jest opcjonalna.

Polecenie

:wq!

zapisuje plik i kończy pracę z Vi, a wspomniane na początku artykułu

:q!

kończy pracę z Vi bez zapisywania.

5 więcej…

Co jeszcze ciekawego oferuje Vi? Jest to rozbudowany edytor, może więc kolorować składnię, można w nim przygotować makra, ma zaawansowane funkcje wyszukiwania i edycji tekstu. Jeśli przywykniesz do skrótów w nim używanych, być może go polubisz. Poniżej zamieszczam listę kilku przydatnych klawiszy trybu komand, a w internecie znajdziesz tego wiele, wiele więcej.

klawisz działanie
x usunięcie wskazanego przez kursor znaku
r zamiana znaku wskazanego przez kursor znakiem podanym po ,,r''
y skopiuj linię do schowka
p wklej linię ze schowka
cw change word - zmiana wskananego słowa (i przejście do trybu edycji)
dw,dW usunięcie słowa (dW ignoruje znaki interpunkcyjne)
dd usunięcie całej linii (i skopiowanie jej do schowka
d$,$^ usuń od znaku do końca/początku wiersza
J połącz linię bieżącą z linią poniżej
f,F wyszukaj podany po ,,f'' znak w bierzącej linii (F - wyszukiwanie wstecz
% idź do pasującego nawiasu
/tekst, ?tekst wyszukaj ,,tekst'' do przodu/do tyłu
n powtórz ostatnie polecenie

Warto też wiedzieć, że większość poleceń można poprzedzić liczbą, by wykonać je wielokrotnie. Na przykład:

5dd

usunie pięć kolejnych linii, a

5k

przesunie Cię o 5 wierszy w górę.

Powyższa wiedza powinna być wystarczająca, by rozpocząć pracę z Vi. Jeśli jest to tylko krok pośredni do pracy z Emacsem, to powinno to wystarczyć. A może Vi spodoba Ci się na tyle, że zostaniesz z nim na dłużej?