Kubek vi zawiera najpotrzebniejsze polecenia edytora vi.

Kubek 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.

POCZĄTEK/KONIEC/POLECENIA POWŁOKI
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ń
WYSZUKIWANIE/ZAMIANA
/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ź

NAWIGACJA
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
WSTAWIANIE/KASOWANIE
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)
USUWANIE/KOPIOWANIE/WSTAWIANIE
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
INNE PRZYDATNE
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ść.