Plaginovi za Vim – korisni dodaci za još korisniji alat (1. deo)

Autor: Marjan Bugarinović

Svi koji su ikada otvorili tekstualni dokument preko terminala znaju šta je Vim. Većina nas se sa istim susrela sasvim slučajno, neki su pobegli glavom bez obzira ne želeći da imaju ništa sa tim, dok su neki ostali i koriste ga i danas. O većini, koja je ostala privržena Vimu, kruži priča da su ostali tu zato što i dalje ne znaju kako da izađu.

Ako ste vi deo te većine koja je ostala, ili mu se uvek rado vraća, ukoliko ga koristite na dnevnom nivou, ili planirate da ga koristite malo više, ovo je tekst za vas!

Vim je sam po sebi odličan uređivač teksta, i to je neosporno, ali postoje mnogi načini kojima bi mogao da se poboljša. Jedan od tih načina su plaginovi (eng. plugin).

Da bismo zaronili u svet plaginova za Vim, potrebno je izabrati jedan od upravljača plaginovima (eng. plugin manager). Kao i uvek, izbor upravljača je veliki, a među najpopularnijima se nalaze vim-plag (eng. vim-plug), Vandl (eng. Vundle) i patogen (eng. pathogen). Kako bismo izabrali onog koji nam odgovara, moramo da se zapitamo šta želimo. Ukoliko želimo nešto jednostavno i lagano po pitanju resursa, izabraćemo, po svim preporukama, vim-plag. Ukoliko želimo nešto malo teže, ali i prilagodljivije korisnicima, tu je Vandl, a ukoliko želimo nešto malo naprednije i baš minimalistički, iskoristićemo patogen.

Mi smo se odlučili za sredinu, zato što je dobro kada je nešto lagano po pitanju resursa (eng. lightweight), ali i lagano za razumevanje. Odabrali smo da instaliramo vim-plag kao upravljač plaginovima i u narednom delu ćemo opisati kako se instalira i šta je potrebno kako biste ga uspešno i koristili i konfigurisali.

Instalacija je veoma laka, samo iskopirajte sledeće linije u vaš terminal i vim-plag će se sam instalirati.

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Gore navedena komanda curl predstavlja alat za prenos podataka sa nekog servera ili na server uz pomoć velikog broja protokola, jedan od njih je i HTTPS, koji koristimo u komandi iznad. Šta će uraditi ova komanda kada je, doslovno rečeno, „poterate” u terminalu? Kreiraće novi direktorijum u okviru Vimovog kućnog (eng. home) direktorijuma pod nazivom autoload (ovde pretpostavljamo da se kućni direktorijum Vima nalazi u vašem kućnom direktorijumu i ima naziv .vim) i kreiraće datoteku pod nazivom plug.vim. U tu datoteku će prebaciti sadržaj istoimenog fajla sa udaljenog servera, putem HTTPS protokola i time će sama instalacija vim-plaga biti završena.

Da bi vim-plag započeo svoj posao, potrebno je da u vašoj .vimrc datoteci (lokacija na kojoj ćete pronaći .vimrc datoteku je ~/.vimrc) dodate sledeće linije koda:

call plug#begin('~/.vim/plugged')

call plug#end()

Po dodavanju ovog koda u vaš .vimrc, potrebno je da kreirate direktorijum pod nazivom plugged u kućnom Vim direktorijumu. Preporuka je da ovaj direktorijum ne nazovete plugin, kako bi se razlikovao od standardizovanih imena koje koristi Vim. Inače, može da se zove kako god poželite, to će biti direktorijum u kome će se nalaziti vaši plaginovi. Deo koda koji smo dodali će služiti kao skladište u kome ćemo dodavati plaginove koje želimo da instaliramo. Preporuka je da za svaku liniju konfiguracije u .vimrc datoteci ostavite neki komentar, čisto da biste znali o čemu se radi, kada posle malo dužeg vremena otvorite .vimrc. U komentaru možete staviti šta god želite, a što se nas tiče, ljubitelji smo onih rečenica koje same sebe objašnjavaju. Na vama je da odlučite.

Instalacija nrdtri plagina

Ovim smo, može se reći, završili instalaciju vim-plaga u Vimu. Ono što sledi u nastavku je instalacija jednog od veoma korisnih plaginova za Vim – nerdtri (eng. NERDTree). Takođe, pokazaćemo kako se koristi i kako izgleda.

Nerdtri, ili doslovno prevedeno – drvo štrebera, predstavlja pretraživač sistema datoteka (eng. file system explorer) u okviru Vima. Izuzetno je jednostavan i zgodan za upotrebu, a sama činjenica da nije potrebno da izlazimo iz Vima kako bismo otvorili neku novu datoteku ili napravili direktorijum ili datoteku, kupila je mnoge. Predstavlja odličnu i veoma praktičnu stvar ako se bavite razvojem ili pišete tekstove u Vimu, ili, jednostavno, volite Vim.

Instalacija je sledeća, na ovom linku se nalazi repozitorijum plagina. Kliknemo na zeleno dugme Clone i iskopiramo link koji se otvori tom prilikom. Iskopirani link zalepimo u .vimrc datoteku u delu između koda za vim-plag, što je prikazano ispod.

call plug#begin('~/.vim/plugged')

" Ovde stavimo prikladan komentar, kako bismo znali o čemu se radi
https://github.com/scrooloose/nerdtree.gi://github.com/scrooloose/nerdtree.git

call plug#end()

Tako smo spremili plagin za instalaciju. Da bismo instalirali plagin, potrebno je da otvorimo Vim i u komandnom delu ukucamo:

:PlugInstall nerdtree

Ekran će se podeliti vertikalno i sa desne strane ćete videti da se plagin instalira. Kada se završi, prikazaće se status – Finished. Time je instalacija Nerdtri plagina završena i možemo se posvetiti konfigurisanju. Ekran možete zatvoriti jednostavnim unošenjem :q u komandni deo Vima.

Što se tiče same konfiguracije plagina, ona nije potrebna. Dovoljno je samo da u komandnom delu ukucate :NERDTree kako biste startovali plagin. Kada pritisnete enter, dobićete nešto nalik na sliku ispod i igra može da počne.

Kursor će automatski biti stavljen na samu šemu direktorijuma kroz koju možemo da se krećemo pritiskom na tastere j i k, koji predstavljaju uobičajene načine za kretanje kroz Vim. Da bismo otvorili željeni dokument, to možemo uraditi pritiskom na Enter ili pritiskom na o. Sa desne strane će se prikazati dokument koji smo otvorili. Isto tako, možemo pritisnuti o dok nam je kursor postavljen na direktorijumu, ili Enter i time ćemo otvoriti poddirektorijume u okviru otvorenog direktorijuma. Otvaranjem datoteke, dokumenta, dela koda, kursor nam je automatski prebačen na željeni dokument i možemo da započnemo uređivanje teksta, ili šta god nam padne na pamet.

Da biste manevrisali i kretali sa teksta i Nerdtrija, jednostavno pritisnite prečicu Ctrl w w i kursor će vas vratiti na naredni prozor. Ukoliko želite da zatvorite bilo koji podeljeni ekran, bilo otvoreni tekst, bilo Nerdtri (zašto bi to neko radio?), unosimo dobro nam poznatu :q komandu.

Jedna od najkorisnijih komandi koje možemo dati našem štreberskom drvetu jeste i ?, a to je, kao što pretpostavljate – pomoć! Pritiskom na tu komandu, u okviru samog Nerdtrija će vam se otvoriti spisak komandi, odnosno prečica koje možemo koristiti u Nerdtriju. Navigacija se vrši standardno, a izlazak iz pomoćnog menija se vrši jednostavnim pritiskom na q.

Evo još nekoliko korisnih prečica koje možemo koristiti u našem Nerdtriju: kada pritisnemo i na željeni dokument, a jedan nam je već otvoren, podelićemo ekran horizontalno i tamo će se otvoriti željeni dokument; pritiskom na t otvaramo dokument u novom tabu i plagin nas odmah šalje na taj dokument; pritiskom na T takođe otvaramo novi tab, ali ovoga puta ostajemo na početnom mestu, ne idemo nikuda, ova komanda je poznata kao skriveni tab (eng. silent tab); pritiskom na m u samom dnu ekrana otvoriće se meni (eng. menu) u kome možemo da izaberemo hoćemo li kreirati novi dokument ili direktorijum, kopirati postojeće dokumente ili direktorijume, izlistati direktorijume, pomerati ili brisati direktorijume ili dokumente. Kada želimo da kreiramo direktorijum, potrebno je da samo naziv dokumenta završimo sa /, kako bi plagin znao da se radi o direktorijumu.

Preporuka za korišćenje – kako ne biste svakog puta, prilikom ulaska u Vim ukucavali :NERDTree, možete mapirati određenu tipku na tastaturi ili set tipki kako biste otvorili plagin bez mnogo kuckanja, a sve to zato što smo ljudi i zato što imamo tendenciju da sebi smanjimo posao, a i pomalo smo lenji.

Komandi i prečica za korišćenje Nerdtrija je mnogo. Ovde ćemo završiti priču o ovom plaginu i ostavićemo vam da ostatak sami otkrijete.

Budite radoznali!

Korisni linkovi:

Ostavite odgovor

Vaša adresa e-pošte neće biti objavljena. Neophodna polja su označena *

Time limit is exhausted. Please reload CAPTCHA.