Podstawy pracy z edytorem VIM
Kategoria: Artykuły, etykiety: vim
Dodany: 2013-04-07 16:00
(zmodyfikowany: 2013-04-07 20:55)
Przez: krasnij
Wyświetleń: 19797
Wprowadzenie
VIM czyli wieloplatformowy klon edytora tekstu Vi. Chyba najpopularniejszy edytor tekstu dla GNU/Linux, a zarazem dla wielu najtrudniejszy. Można zadać sobie pytanie - po co używać vima? Przecież mamy inne, łatwiejsze edytory tekstu: np. nano, pico, graficzne edytory typu leafpad, gdzie edycja plików przebiega w sposób łatwy i przyjazny. Odpowiedź jest prosta: edytor vim ma potężne możliwości i po zrozumieniu jego działania szybko można dojść do stwierdzenia, że żaden inny edytor nie pozwoli w tak szybki sposób edytować plików. Ba! Po odpowiedniej konfiguracji VIM może stać się bardzo wygodnym IDE dla każdego programisty. Dlatego drogi czytelniku, zachęcam Cię do poznania tego edytora.
Część I : Podstawy
Stwórzmy sobie prosty plik:
vim nauka
Już po włączeniu vima można zauważyć jego odmienność. Nie możemy od razu przejść do pisania/edytowania tekstu jak to jest np. w nano. Dlaczego? Otóż, drogi użytkowniku - vim jest edytorem modalnym, tzn. posiada więcej niż jeden tryb pracy. Kiedy tylko włączysz vima, znajdujesz się w trybie NORMAL. Zanim przejdziemy do edytowania tekstu, najpierw nauczymy się poruszać po edytorze. Możemy oczywiście poruszać się za pomocą kursorów, jednakże vim prezentuje nam inny sposób: za pomocą klawiszy h,j,k,l.
H - lewo
J - góra
K - dół
L - prawo
Pozwala to użytkownikowi nie przenosić całej ręki, dzięki czemu poruszanie się po dokumencie jest bardzo szybkie. Aby poruszać się w przód i w tył o długość strony możemy użyć klawiszy PgUp oraz PgDown. Ponownie jednak, aby przyspieszyć pracę i nie przenosić całej ręki możemy użyć CTRL-F oraz CTRL-B. Aby przesunąć się na początek linii użyj klawisza 0. Natomiast, aby przesunąć się na jej koniec użyj klawisza $.
Przejdźmy teraz do edytowania pliku. Aby przejść w tryb edycji, należy nacisnąć klawisz i . Wtedy na samym dole programu pojawi się napis "WPROWADZANIE" albo "INSERT". Oznacza to, że vim zmienił tryb pracy. Teraz znajdujemy się w trybie edycji tekstu. Żeby zakończyć edytowanie wciskamy klawisz "ESC". Po jego naciśnięciu VIM wraca do trybu NORMAL i możemy swobodnie poruszać się po tekście.
Aby zapisać plik wpisujemy :w (od WRITE) znajdując się w trybie NORMAL. Jeżeli zmiany chcemy zapisać do innego pliku - wpisujemy :w nazwapliku. Aby wyjść z vima wpisujemy :q (od QUIT). Możemy połączyć te dwa polecenia i po prostu wpisać :wq . Spowoduje to zapisanie pliku i zamknięcie vima.
Podstawowe umiejętności dotyczące pracy z vimem już mamy. Na temat pracy z vimem powstają książki, w związku z tym nie będziemy tutaj przytaczać wszystkich jego możliwych funkcji. Aby w pełni zapoznać się z dostępnymi funkcjami wpisz w terminalu vimtutor. Zostanie uruchomiony tutorial, który nauczy Cię pracy z vimem i przedstawi wiele jego funkcji. Całość trwa około 30 minut.
Część II : Trochę więcej niż podstawy
Umiemy już poruszać się w vimie oraz edytować pliki. Czas na trochę więcej.
- Otwieranie kilku plików
Aby otworzyć kolejny plik do edycji, kiedy znajdujemy się w vimie należy wpisać
:e /sciezka/do/pliku
Aby przełączać się pomiędzy tymi plikami wpisujemy :bn (od buffor next) albo :bp (od buffor previous).
Wg. mnie wygodniejszą opcją jest otwieranie kilku plików w tabach. Żeby to zrobić wpisujemy
:tabe /sciezka/do/pliku
Pomiędzy plikami przełączamy się tak jak zostało to opisane wyżej. Można jednakże zrobić to za pomocą myszy. Wystarczy, że w trybie NORMAL wpiszemy:
:set mouse=a
Możemy to polecenie dodać do naszego ~/.vimrc (wtedy nie używamy dwukropka!).
I już możemy ładnie i zgrabnie używać myszy do przełączania się pomiędzy otwartymi tabami.
- Wyszukiwanie
Aby znaleźć ciąg znaków znajdujący się w pliku, który edytujemy/czytamy wystarczy, że wpiszemy w trybie normal /toczegoszukamy . Aby ułatwić sobie sprawę możemy kazać vimowi podświetlić szukaną frazę. Robimy to za pomocą polecenia:
:set hlsearch
Aby vim zaczął szukać frazy od razu kiedy tylko zaczniemy ją wpisywać wystarczy, że wpiszemy:
:set incsearch
Polecenia te możemy dodać do naszego .vimrc
Aby znaleźć szukane frazy i zastąpić je innym ciągiem znaków wpisujemy:
:[zakres]s/szukana_fraza/podstawiana_fraza/[g]
Gdzie zakres odpowiada za ilość linii oddzielonych przecinkiem. Przykładowo, aby dokonać zamiany szukanej frazy w pierwszych 20 liniach uzyjemy zakresu (1,20). g - oznacza, że zastępujemy globalnie, tj. więcej niż jeden raz w linii. Przykładowe użycie polecenia:
:%s/ala/ola/g
sprawi, że w całym pliku fraza "ala" zostanie zastąpiona przez frazę "ola".
Część III: VIM jako IDE
Tak, Vim może służyć jako świetne i bardzo wygodne IDE dla każdego programisty. Wystarczy jedynie, że lekko go zmodyfikujemy i dodamy odpowiednie opcje do pliku .vimrc.
- Kolorowanie tekstu
Za kolorowanie tekstu odpowiada komenda
:syntax enable
Możemy dodać ją do .vimrc
- Automatyczne wcinanie tekstu
Aby vim automatycznie wcinał nam tekst, użyjmy komendy :set autoindent . Kiedy ten tryb jest włączony przenosimy się o jeden poziom wcięcia w lewo za pomocą CTRL-D, w prawo za pomocą CTRL-T . Poziom wcięcia ustawiamy komendą :set tabstop . Przykładowo
:set tabstop=2
Żeby nieco poszerzyć funkcjonalność naszego edytora możemy użyć pluginów. Pluginy znajdziemy na stronie vima
Wrzucamy je do katalogu ~/.vim , a następnie dopisujemy do pliku .vimrc polecenie filetype plugin on . Czytamy plik README danego plugina, który mówi nam za pomocą jakiego polecenia mamy go włączyć w vimie (bądź jakie polecenie dodać do .vimrc) i już możemy cieszyć się zmodyfikowanym vimem. Przykładowo, możemy uzyć pluginu NERDTree , który doda nam drzewo katalogów do vima. Plugin TagList z kolei, pozwoli nam łatwiej odnaleźć się w naszym kodzie. Poda nam on np. jakie mamy zdefiniowane funkcje i zmienne.
Oto jak wygląda VIM po zastosowaniu tych 2 pluginów.
Podsumowanie
Jak widać, edytor VIM oferuje nam bardzo duże możliwości. Niezależnie od tego, czy jesteś programistą, czy zwykłym użytkownikiem, który edytuje czasem pliki konfiguracyjne - Vim umożliwi ci szybszą i wygodniejszą pracę. Zachęcam do nauki i poznawania możliwości tego wspaniałego programu.