vi może działać w kilku trybach. W każdym z nich wykonuje się określone zadania. Podczas startu vi, użytkownik znajduje się w trybie wydawania poleceń. Można w nim - jak sama nazwa wskazuje - wydawać polecenia służące do manipulacji tekstem, zapisywania, otwierania i poruszania się po pliku jak i zmiany trybu pracy. Edycja tekstu dokonywana jest w trybie wprowadzania (“insert mode”). Zmiany trybu dokonuje się szybko przy pomocy skrótów klawiszowych opisanych poniżej.
W tym trybie edytor znajduje się bezpośrednio po uruchomieniu. Nie można w nim bezpośrednio wprowadzać tekstu czy też dokonywać edycji pliku. Tym niemniej można manipulować tekstem, przeszukiwać, ładować i zapisywać pliki. Poniżej przedstawiamy wprowadzenie do trybu. Po pełniejszy spis poleceń zajrzyj do Sekcja 16.7.
Prawdopodonie najczęściej używanym poleceniem w omawianym trybie jest przejście do trybu wprowadzania. Dokonuje się tego poprzez naciśnięcie klawisza i. Kursor zmieni kształt i u dołu ekranu pojawi się -- INSERT --(w wersji polskiej -- WPROWADZANIE --). Należy zauważyć, że nie dzieje się to we wszystkich klonach vi. Od tego momentu wszystkie wciśnięte klawisze są zapisywane do aktualnego bufora i wyświetlane na ekranie. Aby powrócić do trybu wydawania poleceń, należy wcisnąć ESCAPE.
Tryb wydawania poleceń służy też do poruszania się po pliku. W niektórych systemach można używać strzałek (kursorów), w innych tylko tradycyjnej kombinacji klawiszy “hjkl”. Oto ich znaczenie:
h | przesuń w lewo o jeden znak |
j | przesuń w dół o jeden znak |
k | przesuń w górę o jeden znak |
l | przesuń w prawo o jeden znak |
Poprostu wciśnij klawisz by poruszyć kursor. Jak się później okaże klawisze te mogą być kombinowane z liczbami w celu polepszenia efektywności.
Wiele z komend używanych w trybie wydawania poleceń rozpoczyna się znakiem dwukropka. Na przykład wyjście to :q. Dwukropek informuje, że jest to polecenie podczas gdy “q” oznacza zakończenie pracy. Inne polecenia składają się z opcjonalnej liczby i następującej po niej litery. Nie zaczynają się dwukropkiem i są generalnie używane do manipulacji tekstem.
Dla przykładu, by usunąć całą linijkę (tę, na której znajduje się kursor) z pliku należy wpisać dd. Wydanie polecenia 4dd spowoduje natomiast skasowanie wiersza pod kursorem i trzech kolejnych. Generalnie liczba informuje vi ile razy wykonać daną akcję.
Liczby można łączyć też z innymi poleceniami, na przykład by poruszać się o kilka znaków w określonym kierunku. Wpisane 10k spowoduje przeniesienie o 10 wierszy w górę ekranu.
Trybu wydawania poleceń używać można również do kopiowania, wklejania i wczytywania nowego pliku do aktualnego bufora. Aby skopiować tekst należy użyć klawisza y (ang. yank). yy spowoduje skopiowanie linii a poprzedzenie polecenia liczbą wymusi akcję dla większej ilości wierszy. Komenda p odpowiedzialna jest za umieszczenie skopiowanego tekstu w kolejnej linijce (licząc od pozycji kursora).
Wycinanie tekstu dokonywane jest przez sekwencję dd, natomiast polecenie p może być użyte by wkleić wycięty tekst. Wczytanie tekstu z innego pliku polega na wydaniu komendy :r i po spacji nazwy pliku. Jego zawartość zostanie wklejona poczynając od linii poniżej kursora. Niektóre klony vi oferują nawet uzupełnianie nazw plików jak to ma miejsce w powłoce.
Tryb wydawania poleceń umożliwia zarówno proste wyszukiwanie jak i skomplikowane komendy typu znajdź-i-zamień korzystające z wyrażeń regularnych. Omówienie tych ostatnich przekracza ramy tej publikacji, dlatego skupimy się w tym miejscu na podstawowych aspektach wyszukiwania.
Trywialne wyszukiwanie realizowane jest poprzez wpisanie (w omawianym trybie) / i pożądanego fragmentu tekstu. vi rozpocznie poszukiwanie od miejsca, w którym znajduje się kursor aż do końca pliku. Należy zauważyć, że odnalezione zostaną także niedokładne fragmenty. Na przykład wpisanie słowa “the” spowoduje zatrzymanie na słowach takich jak “then”, “therefore” itp.
W momencie gdy vi znajdzie pierwsze wystąpienie poszukiwanego wyrazu, można nakazać mu poszukać kolejnych. W tym celu należy ponownie wpisać / i wcisnąć enter. Aby wyszukiwać wstecz (względem pozycji kursora) znak / trzeba zastąpić ? (i wprowadzić po nim poszukiwane słowo).
W tym trybie następuje wprowadzanie tekstu. Jak już wcześniej wspomniano wejście do omawianego trybu następuje poprzez wciśnięcie klawisza i (w trybie Command). Od tego momentu wszystko co zostanie wpisane pojawi się na ekranie i w buforze. Powrót do trybu wydawania poleceń osiąga się poprzez wciśnięcie klawisza ESCAPE
Podmienianie (zastępowanie) tekstu może być dokonane na kila sposobów. W trybie Command wpisanie r pozwoli na podmianę jednego znaku (znajdującego się pod kursorem). Klawisz R działa analogicznie, z różnicą, że nadpisać można dowolną ilość znaków. Ponownie - powrót do trybu wydawania poleceń - odbywa się przez naciśnięcie ESCAPE.
Jest jeszcze jedna ciekawa metoda, która pozwala na przełączanie między wprowadzaniem znaków a nadpisywaniem. Aby z niej skorzystać należy wcisnąć INSERT w trybie wydawania poleceń. Od tej chwili wspomniany klawisz służy jako przełącznik między wprowadzaniem tekstu a ich nadpisywaniem.