|
piątek, 15 października 2010 10:30 |
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 samym kierunku |
| N |
powtórz ostanie wyszukanie, ale w przeciwnym kierunku |
| :a,b cmd |
wykonaj polecenie cmd w zakresie od a do b |
:s/pt/st/fl
|
zamiana wzorca pt na wyrażenie st, 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ść.
|