Vi (program)
Z Wikipedii
- Właściwy tytuł tego artykułu to vi. Z powodu ograniczeń technicznych tytuł tego artykułu jest nieprawidłowy.
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