vi to edytor modalny, popularny w systemach Unix. Jego autorem jest Bill Joy. Nazwa wzięła się od słowa visual.

Dziś rzadko używa się czystego vi w codziennej praktyce, został wyparty przez swoje klony, takie jak Vim, nvi lub elvis, które oferują znacznie bogatsze możliwości. Nadal jednak pozostaje jednym z cenniejszych narzędzi administratora ze względu na powszechność występowania i jednolitość implementacji.

Edytor vi jest edytorem ekranowym, co oznacza, że użytkownik widzi na ekranie fragment pliku i może się po nim swobodnie poruszać za pomocą kursorów, dokonywać zmian w tekście i dopisywać nowy tekst. Edytor vi można uruchomić z argumentem będącym nazwą pliku. Jeżeli taki plik nie istnieje, to zostanie utworzony nowy. Edytor vi w przeciwieństwie do prawie wszystkich innych edytorów jest modalny – w każdej chwili znajduje się w jednym z dwu trybów pracy, trybie wstawiania lub trybie poleceń. Bezpośrednio po uruchomieniu vi znajduje się w trybie poleceń. Przejście do trybu wstawiania odbywać się może m. in. przez wydanie polecenia i (insert) lub a (append). Polecenia vi nie wymagają potwierdzenia klawiszem Enter, wykonywane są natychmiast.

Przejście z trybu wstawiania do trybu poleceń odbywa się przez naciśnięcie klawisza Esc.

W istocie vi jest edytorem ex działającym w trybie wizualnym, dlatego wszystkie polecenia edytora ex dostępne są także w vi. Polecenia ex wydawane w trybie poleceń poprzedzane są dwukropkiem : i wymagają potwierdzenia klawiszem Enter.

Spis treści

[edytuj] Polecenia

Polecenia edytora vi składają się z kilku grup.

Polecenia edycyjne:

  • a - wpisywanie tekstu za kursorem
  • A - wpisywanie tekstu na koÅ„cu aktualnej linii
  • i - wstawianie tekstu przed kursorem
  • I - wstawianie tekstu na poczÄ…tku aktualnej linii
  • o - utworzenie nowej linii poniżej aktualnej
  • O - utworzenie nowej linii powyżej aktualnej
  • R - zastÄ™powanie tekstu
  • s - zastÄ…pienie znaku wskazanego przez kursor
  • S - zastÄ…pienie aktualnej linii
  • c - zmiana zaznaczonego tekstu
  • C - zmiana do koÅ„ca linii

Polecenia zmieniajÄ…ce tekst:

  • x - skasowanie znaku wskazywanego przez kursor
  • X - skasowanie znaku przed kursorem
  • d - skasowanie wskazanego tekstu
  • dd - skasowanie aktualnej linii
  • D - skasowanie tekstu od aktualnej pozycji aż do koÅ„ca linii
  • y - skopiowanie wskazanego tekstu do bufora pomocniczego
  • Y - skopiowanie linii tekstu do bufora pomocniczego
  • p - wstawienie tekstu za kursorem
  • P - wstawienie tekstu przed kursorem
  • J - połączenie linii
  • > - przesuniÄ™cie tekstu w prawo
  • < - przesuniÄ™cie tekstu w lewo
  • ! - przetworzenie tekstu przez polecenie systemowe i zastÄ…pienie tego tekstu przez wyjÅ›cie tego polecenia
  • r - zastÄ…pienie znaku wskazywanego przez kursor
  • m - zaznaczenie linii tekstu
  • u - anulowanie ostatniej zmiany (ponowne wciÅ›niÄ™cie powoduje ponowne zastosowanie ostatniej zmiany)

Polecenia sterujÄ…ce kursorem:

  • 0 - przeniesienie kursora na poczÄ…tek linii
  • ^ - przeniesienie kursora na poczÄ…tek linii
  • $ - przeniesienie kursora na koniec linii
  • h - przeniesienie kursora w lewo
  • j - przeniesienie kursora w dół
  • k - przeniesienie kursora w góre
  • l - przeniesienie kursora w prawo
  • ^H - skasowanie znaku przed kursorem (klawisz backspace)
  • f - przeniesienie do przodu do podanego znaku
  • F - przeniesienie do tyÅ‚u do podanego znaku
  • t - przeniesienie do przodu przed wskazany znak
  • T - przeniesienie do tyÅ‚u przed wskazany znak
  • ; - powtórzenie ostatniego polecenia f, F, t, T
  • , - odwrócenie dziaÅ‚ania ostatniego polecenia f, F, t, T
  • | - ustawienie kursora w podanej kolumnie
  • % - odnalezienie pary dla wskazanego nawiasu
  • B - ustawienie kursora na poczÄ…tku poprzedniego sÅ‚owa (sÅ‚owo = ciÄ…g znaków bez znaków biaÅ‚ych)
  • W - ustawienie kursora na poczÄ…tku nastÄ™pnego sÅ‚owa (sÅ‚owo = ciÄ…g znaków bez znaków biaÅ‚ych)
  • H - przeniesienie kursora na górÄ™ ekranu
  • L - przeniesienie kursora na dół ekranu
  • spacja - przeniesienie kursora w prawo

Polecenia sterujÄ…ce ekranem:

  • ^F - przesuniÄ™cie okna ekranowego o jeden ekran do przodu
  • ^B - przesuniÄ™cie okna ekranowego o jeden ekran do tyÅ‚u
  • G - przesuniÄ™cie okna ekranowego do podanej linii
  • / - wyszukanie podanego wzorca w przód (po dojÅ›ciu na koniec pliku kontynuowanie szukania od poczÄ…tku)
  • ? - wyszukanie podanego wzorca w tyÅ‚ (po dojÅ›ciu na poczÄ…tek pliku kontynuowanie szukania od koÅ„ca)
  • ^L - wyczyszczenie i przerysowanie ekranu
  • ^R - przerysowanie ekranu

Wybrane polecenia ex:

  • :q - wyjÅ›cie z edytora pod warunkiem braku zmian od ostatniego zapisu
  • :q! - wyjÅ›cie z edytora bez zapisania pliku
  • :w - zapisanie pliku
  • :w nazwa - zapisanie pliku pod nowÄ… nazwÄ…
  • :w! - zapisanie pliku (z wymuszonym zapisaniem plików tylko do odczytu)
  • :wq - wyjÅ›cie z edytora z zapisaniem pliku
  • :x - wyjÅ›cie z edytora z zapisaniem pliku (bez zapisania przy braku zmian)
  • :x! - wyjÅ›cie z edytora z zapisaniem pliku (bez zapisania przy braku zmian, z wymuszonym zapisaniem plików tylko do odczytu)
  • ZZ - wyjÅ›cie z edytora z zapisaniem pliku
  • :e nazwa - otworzenie pliku do edycji
  • :help - wyÅ›wietlenie pomocy

vi i jego pochodne posiadają wystarczającą liczbę zwolenników do powstania tak zwanej wojny edytorowej między nimi a zwolennikami Emacsa.

[edytuj] Zalety vi

Edytor vi pomimo pozornego anachronizmu nadal jest wykorzystywany chętnie przez administratorów i programistów. Jego największe zalety to:

  • dostÄ™pność praktycznie w każdym systemie uniksowym bez koniecznoÅ›ci doinstalowywania pakietów czy bibliotek,
  • możliwość pracy w bardzo ubogim Å›rodowisku terminalowym - bez grafiki i przy ograniczonym zestawie znaków,
  • możliwość peÅ‚noekranowej edycji plików nawet przy bardzo wolnym łączu - przez sieć dla każdej edycji przesyÅ‚ane jest tylko tyle znaków, ile zostaÅ‚o wpisane, a odÅ›wieżany jest tylko niewielki fragment tekstu, którego dotyczy edycja.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

[1] vi command reference