Początkujący użytkownicy często niechętnie korzystają z tego programu, a
wręcz
go unikają. Powody są co najmniej dwa: ubogi wygląd i trudność obsługi.
Bynajmniej jedno wiąże się z drugim. W programie tym nie istnieje menu takie,
jak np. w mcedit, czy windowsowym notatniku - tutaj trzeba posługiwać się
komendami niczym w wierszu poleceń. Komendy te trzeba oczywiście znać, ale jak
się za chwilę okaże, nie jest to nic kosmicznego.
Jest jeszcze trzecia "wada" VIM'a - nieestetyczny wygląd samego tekstu.
Standardowo pisząc w tym edytorze tekst nie tylko zawijany na końcu, ale i
łamany. Jak się później okaże można i temu zaradzić, ale niemniej jednak uważam,
że jest to typowy edytor kodu i nie nadaje się do czytania długich
artykułów.
Mimo to VIM chętnie używany jest przez programistów systemów UNIX i jego
odmian
(także innych systemów).
|
Rys. 1. VIM. Możesz mi wierzyć lub nie, ale artykuł, który teraz czytasz został
napisany właśnie w VIM-ie
|
Trochę historii
Visual In ex
Czysty program został napisany w 1976 roku przez nijakiego Bill Joy'a
(William
Nelson Joy) na potrzeby systemu BSD. Edytor posiada dwa tryby pracy. Pierwszy
tryb to pisanie (wprowadzanie). Drugi zaś przypomina menu graficznych edytorów,
z tą jednak różnicą, że nie używamy zakładek, a wpisujemy polecenia edytora
vi lub ex (otwórz, zapisz, wyjdź).
VI iMproved
W podręczniku systemowym (manual) możemy przeczytać: "vim - udoskonalony
vi,
tekstowy edytor programistów". Autorem programu jest Bram Moolenaar.
Holenderski programista opublikował go w 1991 roku. Otrzymał on wsparcie innych
programistów w trakcie tworzenia programu oraz po jego opublikowaniu. Program
uważany jest za rozszerzoną wersję edytora vi, bowiem program zachował wysoki
stopień kompatybilności z poprzednikiem.
Podstawowe zmiany jakie istnieją pomiędzy tymi edytorami to wielokrotne cofanie
zmian (undo), gdzie VIM daje możliwość tysiąckrotnego cofnięcia, natomiast VI -
jednokrotnego. Do tego VIM umożliwia przewijanie ekranu w poziomie, zwiększenie
limitu długości wierszy oraz rozmiaru pliku. Ponadto rozszerzony program posiada
26 rejestrów (tzw. schowków), w których można przechowywać fragmenty tekstów.
Oprócz tego program umożliwia kolorowanie składni oraz wsparcie dla narzędzi
programistycznych (m.in. kompilatory, debugery).
Jako ciekawostkę warto wspomnieć, że oprócz konsolowego edytora można spotkać
się z wersja graficzną - gvim. Istnieją wersje programu działające także
na innych systemach, nie tylko Unix (np. Windows).
Polecenia
Jak już wspomniałem program posiada 2 tryby pracy - tryb wprowadzania, czyli
pisania (VISUAL) i poleceń (NORMAL). Tryb normal z kolei umożliwia
wprowadzenie dwóch typów poleceń: polecenia vim (w tym vi) oraz
ex.
W trybie wizualnym widzimy i bezpośrednio modyfikujemy tekst. W trybie
poleceń możemy zmodyfikować tekst nie patrząc na niego (np. zamienić dowolny
wyraz na
inny).
Standardowo po otwarciu programu zostaniemy poczęstowani trybem NORMAL
(polecenia). Aby przejść do pisania możemy użyć klawisza [a]
(ang. append - dopisywanie za lub przed znakiem, dosł. dołączać) lub
[i] (ang. insert - wstawianie, nadpisywanie wyrazów, dosł.
wkładać) - często w edytorach graficznych możemy wywołać te dwa tryby
klawiszem [Insert] na klawiaturze.
Aby powrócić do poleceń wciskamy [ESC].
Polecenia ex:
Aby usprawnić pracę możemy połączyć niektóre polecenia, np. :wq (zapis
i natychmiastowe wyjście).
Znając powyższe polecenia można już śmiało używać VIM'a.
Polecenia vi:
W niektórych przypadkach można polecenie poprzedzić liczbą, która będzie
oznaczała ilość powtórzeń wykonania polecenia. Przykładowo polecenie: 15l
będzie oznaczać przesunięcie kursora w prawo o 15 znaków, lub 15x -
usunięcie kolejnych 15 znaków.
Jak na razie wymieniłem tylko przykładowe polecenia dla ex oraz
vi. Jak widać nie są wcale trudne i można łatwo je zapamiętać.
Polecenia vim też nie powinny sprawiać specjalnych kłopotów...
Polecenia vim
W związku z tym, że vim jest w wysokim stopniu kompatybilny z edytorem
vi jego podstawowe polecenia nie ulegają zmianie. W każdym razie vim
posiada szereg nowych, których vi już nie ma.
Poniżej znajdują się oczywiście najbardziej przydatne polecenia w skróconej
formie. Aby dowiedzieć się pełnej nazwy polecenia wystarczy wpisać:
:h nazwa_polecenia
Tryb NORMAL
Sex w trybie ex
Czyli polecenia, które zawierają przynajmniej jedną literę wyrazu
"sex".
Za pomoca poleceń trybu ex możemy ułatwić sobie proces edycji
pliku...
:%s/tekst aktualny lub wyrażenie regularne/nowy tekst/gc
Polecenie to umożliwia zamiane jednego wyrazu na drugi. Znak procentu
oznacza, że polecenie ma dotyczyć całego tekstu w pliku. Ukośniki służą
za separatory poleceń, litera g oznacza wykonywanie polecenia aż
zostanie napotkana granica zakresu (w tym wypadku EOF - koniec pliku), natomiast
litera c włącza tryb potwierdzeń "krok po kroku" dla wykonywanego
polecenia w przypadku spełnionego kryterium wyszukiwania
- jeżeli nie użyjemy c polecenie zostanie wykonane całe
automatycznie!
Zapamiętaj, że pierwszy wyraz jest wzorem zamienianym na drugi, a nie
odwrotnie (czyli zamieniasz coś / coś_innego).
Napisałem, że ukośniki [/] są separatorami. A co zrobić, jeśli chcemy
zamienić ukośniki występujące w tekście? Poprostu poprzedzamy ukośnik
backslashem [\], czyli jako argument do zamiany wpisujemy nie
/ tylko: \/
- i tak możemy robić w obie strony.
Ponadto możemy napotkać inne problemy ze znakami tego typu (mającymi
znaczenie w składni polecenia) - jeżeli występują takie w tekście i chcemy je
zamienić to również poprzedzamy je backlslashem.
Przykładowo, jeżeli w tekście zamieniamy \n na coś innego to w tym
poleceniu wpisujemy \\n.
Możemy oczyścić ładnie tekst z tagów HTML:
Polecenie wycina wszystko co się zaczyna od "<" i kończy na ">"
włącznie - nawet, jeśli tag przeciąga się na kilka nowych wierszy.
Zamiast nawiasów, trójkątnych
możemy wstawić dowolne inne, wtedy zamiast tagów HTML wytniemy to co jest w tych
nawiasach. Oczywiście, jeśli dla ostrożności chcesz wybrać tryb potwierdzeń
dodaj na końcu c.
Pamiętaj, że polecenie ma na końcu 2x [ / ]. Dlaczego?
Ponieważ całe to polecenie oznacza zamianę wszystkiego co znajduje się pomiędzy
nawiasami trójkątnymi na to co jest pomiędzy tymi dwoma ukośnikami - można
tam wstawić spację albo inny wyraz lub znak.
A w następujący sposób usuwamy puste wiersze:
W ten sposób wiersze, które nie zawierają żadnego znaku zostaną usunięte i
tekst
będzie linijka pod linijką.
VIM i kodowanie
Poniższe polecenia ustawiają kodowanie znaków (bardzo przydatne, jeżeli
piszemy
po polsku i nie chcemy narazić się na "krzaczenie").
- można ustawić też inne kodowanie podając odpowiedni rodzaj (np.
iso-8859-1)...
Konfiguracja VIM-a
VIM jest programem, który można dostosować do swoich preferencji. Można
zmienić w nim wiele rzeczy, np. włączyć podświetlanie składni, ustawić długość
tabulacji czy nadać kolory, itd...
Poniżej znajduje się lista poleceń, które można wpisać, albo w
trybie ex (poprzedzając je dwukropkiem), albo w pliku konfiguracyjnym
(plik konfiguracyjny dla systemów GNU/Linux i Unix nosi nazwę .vimrc i
powinien znajdować się w /home/nazwa_uzytkownika/, natomiast dla systemów
Microsoftu plik ten nosi nazwę mu_vimrc.
W niektórych przypadkach anulowanie ustawionej opcji, można wykonać poprzez
poprzedzenie nazwy przedrostkiem no, np. set noautoindent czy set
nonumber. W odpowiednio innych przypadkach należy wartośc ustawić na
0...
Wiecej o konfigurowaniu i pliku konfiguracyjnym (dla różnych systemów) możesz
przeczytać w pliku pomocy odnoszącego się do konfigu - wpisz polecenie
:h vimrc.
Zaawansowani użytkownicy Linuksa mogą w pliku konfiguracyjnym zastosować
także funkcje programistyczne (skrypty). Więcej na ten temat przeczytasz w pliku
pomocy wpisując polecenie :help source.
Na zakończenie...
Jak widzisz edytor VIM nie jest wcale taki straszny, jaki mógłby się wydawać
na na pierwszy rzut oka. Jak napisałem wcześniej - sam nie miałem co do niego
pewności. Teraz używam go do wszelkich modyfikacji kodu w Linuksie. Napisałem w
nim również ten artykuł. :)
Bibliografia:
- Wikipedia
- Manual (podręcznik) - man vim
- Wewnętrzne pliki pomocy (help)...