Darmowa prenumerata - tu i teraz!
BezImienny - wersja online!
Najlepsze, polskie programy FREEWARE
Poprzedni artykułNastępny artykuł Komputery  

Vi


Grzegorz "PaCan" Pacan

Vi jest edytorem ekranowym. Pamięta baardzo dawne czasy. Używane wcześniej edytory wierszowe pozwalały wyświetlać obrabiany plik po jednym wierszu. vi dał możliwość wyświetlania całego ekranu tekstu. Wprowadzając nowy standard pracy zasłużył sobie na przydomek "wizualny". W następnych kilku akapitach przedstawię sposób korzystania z vi oraz opisze jego polecenia.

Wersja edytora vi dostarczana z systemem GNU/Linux, to tak zwany vim (vi improved). W stosunku do klasycznego oferuje dodatkowo: wielopoziomowe cofanie ostatnich operacji, podświetlanie składni w źródłach programów, rozbudowany system pomoc i wiele innych. vi może pracować w jednym z dwóch trybów: wprowadzania znaków i wydawania poleceń. W każdym z nich poszczególne klawisze mają inne znaczenie. Kilka spośród nich służy do przełączania się między trybami. Tryb wprowadzania znaków służy do wpisywania i dopisywania tekstu. Tryb wydawania poleceń służy do usuwania tekstu, przenoszenia i powielania, wyszukiwania tekstu itd. Edytor uruchamia się w trybie wydawania poleceń. Tryb wprowadzania znaków uaktywnia polecenie i lub a. Tryb wydawanie poleceń uaktywnia komenda Ecs. Wyjście z programu z zapisem następuje, gdy wpiszemy ZZ. Aby wyjść bez zapisu, wpisujemy ZQ.


Poniżej macie opisane elementarne polecenia.
i - uaktywnia tryb wpisywania znaków;
a- uaktywnia tryb dopisywania znaków;
Ecs - powraca do trybu wydawania poleceń;
K - poprzedni wers;
j - następny wers;
h - poprzedni znak;
i - następny znak;
x - usuwa znak pod kursorem;
dd - usuwa bieżący wiersz;
J - łączy bieżący wiersz z następnym;
ZZ - wychodzi z programu i zapisuje zmiany;
ZQ - wychodzi z programu bez zapisywania zmian;

Wiadomości podane powyżej wystarczą na korzystanie z vi, tylko wtedy, kiedy nie mamy wyboru lub mamy po prostu napisać linijkę tekstu. Aby używać vi w praktyce należy wiedzieć o nim więcej. Postanowiłem więc szerzej opisać ten wspaniały edytor.

Aby na co dzień wygodnie korzystać z programu, należy go najpierw skonfigurować.
Właśnie konfiguracją zajmę się w tym akapicie. vi możemy konfigurować poprzez wydawanie odpowiednich poleceń z obrębu programu, wywołując go z podaniem opcji lub poprzez plik konfiguracyjny. Najwygodniej jest założyć w naszym katalogu domowym oraz w katalogach z różnymi dokumentami tekstowymi plik konfiguracyjny vi o nazwie .vimrc . W katalogach z plikami tekstowymi możemy umieścić pliki .vimrc o treści:


:set textwidth=76
:set tabstop=4
:set expandtab
:set autoindent
,br> Mógłbym tutaj rozpisywać się na temat co oznacza ten skrypt, ale napiszę tylko, że opcja textwidth=76 mówi o tym, że wers będzie łamany najdalej za siedemdziesiątą szóstą kolumną. Opcja tabstop=4 ustala szerokość tabulacji na cztery kolumny, a opcja expandtab zmienia znaki tabulacji w tekście na odpowiednią liczbę znaków odstępu. Z kolei opcja autoindent powoduje automatyczne wyrównywanie wcięcia akapitu do wcięcia pierwszego wersu.

Teraz chcę opisać ograniczniki. Służą one do przemieszczania kursora w tekście od aktualnego położenia do określonego miejsca. Stosowane z innymi poleceniami wyznaczają granicę zakresu działania polecenia (drugą granicę wyznacza aktualne położenie kursora). Oto ograniczniki:


gg - pierwszy wers pliku;
nG - n-ty wers pliku;
G - koniec pliku;
CTRL+B - cofnięcie o okno do tyłu;
CTRL+F - posunięcie o okno do przodu;
k - poprzedni wers;
j - następny wers;
h - poprzedni znak;
i - następny znak;
- - początek poprzedniego wersu;
+ - początek następnego wersu;
O - początek bieżącego wersu;
$ - koniec bieżącego wersu;
{ - poprzedni akapit;
} - następny akapit;
( - poprzednie zdanie;
) - następne zdanie;
b lub B - poprzednie słowo;
w lub W - następne słowo;
" - poprzednia pozycja;

A teraz czas na znaczniki. Pozwalają one na przemieszczanie sie do oznaczonych nimi miejsc w tekście. Znaczniki mają nazwy jednoliterowe (a-z i A-Z).


mx - wstawia znaczniki;
x - przechodzi do znacznika x;
mm - szybkie wstawianie znacznika;
'm - skos do znacznika mm;

Były już znaczniki, konfiguracja, polecenia... czas na powtórzenia. Polecenia można poprzedzać współczynnikiem liczbowym określającym ilość powtórzeń danego polecenia zadaną do wykonania. Np. polecenie 3{ (oznacza "trzy akapity od tyłu"). Mógłbym tu podawać wiele przykładów, ale mam nadzieję, że napisze ten tekst przez tą noc, więc nie będę tu się rozpisywał.

Teraz sprawa usuwania, kopiowania i wstawiania fragmentów tekstu. Poniżej podaje polecenia, które służą do usuwania, przenoszenia i kopiowania fragmentów tekstu.


X - usuwa znak przed kursorem;
x - usuwa znak pod kursorem;
dd - usuwa bieżący wiersz;
J - usuwa znak końca linix (łączy bieżący wers z następnym);
dx - usuwa znaki od kursora do ogranicznika x;
d'x - usuwa znaki od kursora do znacznika x;
yy - kopiuje bieżący wers do ukrytego bufora;
yx - kopiuje zadany fragment tekstu to ukrytego buforma (od bieżącego położenia kursora do ogranicznika x);
y'x - kopiuje zadany fragment tekstu do ukrytego bufora (od bieżącego położenia kursora do znacznika x);
P - wstawia usunięty tekst przed kursorem lub przed bieżącym wersem;
p - wstawia usunięty tekst za kursorem lub za bieżącym wersem;

Czas na cofanie i przywracanie ostatniej operacji.

u - cofa ostatnią operację;
CTRL+R - przywraca cofniętą operację;

To co? Zajmiemy się teraz szukaniem łańcuchów znaków? Pewnie, że się zajmiemy.

?abc Enter - szuka łańcucha abc przed kursorem;
/abc Enter - szuka łańcucha abc za kursorem;
N - powtarza szukanie do tyłu;
n - powtarza szukanie do przodu;
% - szuka nawiasu do pary;

W poleceniach szukania możemy korzystać z wyrażeń regularnych:
. - dowolny znak;
^ - początek wersu;
$ - koniec wersu;
\< - początek słowa;
\> - koniec słowa v[a-z] - dowolny znak z podanego zakresu;
[A-Z, a-z] - dowolny znak z podanych zakresów;
[^a-z] - dowolny znak spoza podanego zakresu;
* - zero lub więcej wystąpień poprzedzającego znaku;

Poniższe polecenia służą do wyszukiwania wersów i słów zaczynających się lub kończących określonymi łańcuchami znaków:

/^abc - szuka wersów zaczynających się literami abc;
/abc$ - szuka słów zaczynających się literami abc;
/abc\> szuka słów kończących się literami abc;

Vi może także powtarzać ostatnią operację.

. - powtarza ostatnie polecenie;

Opiszę jeszcze pomoc w vi i kończę ten tekst, bo już mi ręce mdleją.

F1 lub :help - wyświetla informacje o poleceniach i opcjach edytora;
:help xyz - wyświetla informacje o poleceniu xyz;
CTRL+g - wyświetla w linii stanu informację o aktualnej pozycji kursora w pliku i całkowitej liczbie wersów;

UWAGA: polecenia do obsługi systemu pomocy wywołują edytor ex - wyjście z trybu pomocy umożliwia komenda q i :q . Wraz z edytorem dostajemy podręcznik dla początkujących. W celu udoskonalenia umiejętności pracy z programem, warto skorzystać z podręcznika, uruchamiając edytor poleceniem: vimtutor . Jeśli dla posiadanej przez Was wersji edytora polecenie to nie chce działać, sprawdźcie położenie pliku tutor poleceniem: locate tutor | grep vim . Prawdopodobnie znajdziemy ten plik w katalogu /usr/share/vim/tutor/. Robimy kopię pliku tutor w katalogu domowym i uruchamiamy edytor poleceniem: vi tutor .

Napisałem o podręczniku ze względu na to, że ręce mi już mdleją, jest szósta nad ranem, a przez caluchną noc pisałem ten tekst i nie miałem czasu się wyspać. Życzę miłego użytkowania vi, pozdrawiam i idę spać.

BTW. Jeśli macie jakieś pytania to piszcie do mnie, albo do Tilka.



Grzegorz "PaCan" Pacan
poczta: pacan_ardix@go2.pl