Kubek vi zawiera najpotrzebniejsze polecenia edytora vi. Dzięki niemu, spis najważniejszych komend edytora
vi jest zawsze pod ręką, a właściwie na biurku. Ty też możesz go mieć.
Magiczny edytor vi
Nie da się administrować systemem UNIX/Linux bez edytora vi. Magiczny vi jest podstawowym edytorem dla każdego systemu UNIX/Linux. Ponadto jest zazwyczaj edytorem domyślnym, który administrator ma do dyspozycji w przypadku awarii systemu. Warto zdobyć umiejętność korzystania z vi bowiem w świecie UNIX/Linux nie jest administratorem ten, kto nie umie korzystać z vi.
Spis podstawowych poleceń
Zaprezentowane w artykule vi wprowadzenie polecenia wystarczą aby w sposób podstawowy korzystać z edytora vi, wystarczą aby za pomocą vi poprawić lub stworzyć plik, jednak nie ukazują mocy vi, która kryje się np.: w wyszukiwaniu lub zamianie wyrażeń regularnych. Poniżej przestawiony jest spis podstawowych poleceń vi wraz z ich krótkim wyjaśnieniem.
| vi pl | edytuj plik pl |
| vi -R pl | otwórz plik pl tylko do odczytu |
| vi -r pl | odtwórz plik pl po awarii |
| :wq, :x | wyjście z edytora z zapisaniem pliku |
| ZZ | wyjście z edytora z zapisaniem pliku |
| :q | wyjście z edytora pod warunkiem braku zmian od ostatniego zapisu |
| :q! | wyjście z edytora bez zapisania pliku |
| :w | zapisanie pliku |
| :w pl | zapisanie pliku pod nową nazwą pl |
| :e pl | otworzenie pliku pl do edycji |
| :sh | przejdź do powłoki |
| :!cmd | wykonaj polecenie powłoki cmd |
| :r !cmd | wykonaj polecenie powłoki cmd i wstaw wynik polecenia w miejsce kursora |
| :n | przejdź do kolejnego pliku |
| :rew | przejdź do pierwszego pliku |
| ESC | przejście do trybu poleceń |
| /txt | wyszukanie podanego wzorca txt w przód (po dojściu na koniec pliku kontynuowanie szukania od początku) |
| ?txt | wyszukanie podanego wzorca txt w tył (po dojściu na początek pliku kontynuowanie szukania od końca) |
| /^txt | wyszukanie w przód linii rozpoczynającej się od podanego wzorca |
| ?^txt | wyszukanie w tył linii rozpoczynającej się od podanego wzorca |
| n | powtórz ostanie wyszukanie w tym samy kierunku |
| N | powtórz ostanie wyszukanie w ale w przeciwnym kierunku |
| :a,b cmd | wykonaj polecenie cmd w zakresie od a do b |
| :s/ptr/str/fl | zamiana wzorca ptr na wyrażenie str, można zastosować flagi fl g – zamiana każdego wystąpienia, c – potwierdź |
| h | przeniesienie kursora w lewo |
| l | przeniesienie kursora w dół |
| k | przeniesienie kursora w górę |
| j | przeniesienie kursora w prawo |
| G | przeniesienie na koniec pliku |
| nG | przesunięcie okna ekranowego do podanej linii n |
| w | przesunięcie kursora w prawo do początku wyrazu |
| b | przesunięcie kursora w lewo do początku wyrazu |
| nw | przesunięcie kursora w prawo o n wyrazów |
| nb | przesunięcie kursora w lewo o n wyrazów |
| e | przesunięcie kursora w prawo do końca wyrazu |
| CTRL-f | przesunięcie okna ekranowego o jeden ekran do przodu |
| CTRL-b | przesunięcie okna ekranowego o jeden ekran do tyłu |
| H | przesuniecie kursora do lewego górnego rogu ekranu |
| M | przesuniecie kursora do środka ekranu |
| l | przesuniecie kursora do lewego dolnego rogu ekranu |
| CTRL-g | wyświetl nazwę pliku i numer linii w której jest kursor |
| ^ | przeniesienie kursora na początek linii |
| $ | przeniesienie kursora na koniec linii |
| ) | początek najbliższego zdania z prawej strony |
| ( | początek najbliższego zdania z lewej strony |
| } | początek najbliższego akapitu z prawej strony |
| { | początek najbliższego akapitu z lewej strony |
| a | wpisywanie tekstu za kursorem |
| i | wstawianie tekstu przed kursorem |
| A | wpisywanie tekstu na końcu aktualnej linii |
| I | wstawianie tekstu na początku aktualnej linii |
| dw | skasowanie wyrazu |
| dd | skasowanie aktualnej linii |
| ndd | skasowanie n linii |
| nd | skasowanie n znaków |
| x | skasowanie znaku wskazywanego przez kursor |
| X | skasowanie znaku przed kursorem |
| D, d$ | skasowanie tekstu od aktualnej pozycji aż do końca linii |
| dmotion | skasowanie wskazanego tekstu motion to ($, 0, w, etc.) |
| :> | przesunięcie tekstu w prawo |
| :< | przesunięcie tekstu w lewo |
| :> n | przesunięcie n linii w prawo |
| :< n | przesunięcie n linii w lewo |
| r | zastąpienie znaku wskazywanego przez kursor |
| R | zastępowanie tekstu |
| . | powtórzenie ostatniej komendy |
| u | anulowanie ostatniej zmiany (ponowne wciśnięcie powoduje ponowne zastosowanie ostatniej zmiany) |
| yy | skopiowanie linii |
| nyy, nY | skopiowanie n linii |
| yw | skopiowanie wyrazu |
| o | utworzenie nowej linii poniżej aktualnej |
| O | utworzenie nowej linii powyżej aktualnej |
| p | wstawienie tekstu za kursorem |
| P | wstawienie tekstu przed kursorem |
| J | połączenie linii |
| cw | zmiana wyrazu |
| cc | zmiana linii |
| C | zmiana do końca linii |
| CTRL-l | przerysowanie ekranu |
| z | przerysowanie ekranu i ustawienia bieżącej linii u góry ekranu |
| xp | zamiana znaków |
| mp | ustawienie znacznika p w miejscu wskazywanym przez kursor |
| `p | przesunięcie kursora do znacznika p |
| d`p | usuń tekst od znacznika p do kursora |
| ~ | zmień wielkość znaku, zamień małą literę na dużą i odwrotnie |
Przykłady
Poniżej klika zaawansowanych przykładów użycia edytora vi.
:.,$ s/^/#/- na początku każdej począwszy od bieżącej do końca pliku linii wstaw znak #,:4,$ s/esc/~/g- w liniach od 4 do końca pliku zamień każde wystąpienie esc na ESC,:3,5 d- skasuj linię od 3 do 5,:1,. y- skopiuj linie od 1 do tej, w której jest kursor,dw- skasuj wyraz,y5w- skopiuj 5 wyrazów,5dd- skasuj 5 linii, począwszy od tej, w której jest kursor
Pełen zakres komend i możliwości opisany jest w pomocy do edytora. Przyjemnego korzystania z vi.
Tomasz Zin
Powyższe wskazówki zaczerpnięte są z pomocy do edytora vi Wyrażona powyżej opinia jest prywatnym poglądem autora wypowiedzi. Korzystasz na własną odpowiedzialność.

