Development bez miša – alati iz prošlosti

Ovo je članak o vimu, modalnom tekst editoru optimiziranom za česte radnje programera. S guštom su ga napisali članovi tima TSI (Tools and Software Infrastructure) iz Microblinka, vjernog partnera .debuga

Ah, programiranje. Umjetnost sipanja savršenog koda iz rukava, bez ijednog buga i to sve iz prve. Kompajler je tu samo da Vas potapša po leđima i kaže “Svaka čast!”.

Stvarnost je, nažalost, često razočaravajuća.

Iako je naš ultimativni cilj transformacija apstraktnih ideja u jezik kojeg strojevi mogu razumjeti, većinu vremena potrošimo na snalaženje po kodu, čitanje dokumentacije, te mućkanje glavom kako riješiti problem pred sobom.

Za razliku od računala, ljudi nisu toliko dobri u multitaskingu. Zašto si ne bismo onda pomogli i olakšali život uporabom alata?

Kad smo već krenuli ovim IT vodama, čiji put se proteže već desetljećima, možda nije naodmet uložiti nekoliko tjedana u poboljšanje vlastitih navigacijskih i uređivačkih sposobnosti. Zvuči kao mali ulog naspram potencijalnog dobitka, ako je vjerovati fanaticima na Internetu.

Uvod u modalne editore

Modalni editori su, kao što se da naslutiti iz naziva, editori koji omogućuju promjenu trenutnog moda iliti stanja. Uzmimo kao primjer Notepad. U Notepadu smo uvijek u istom stanju, stisnemo neko slovo i ono se pojavi na ekranu.

U modalnom editoru se nalazimo u samo jednom od nekoliko stanja. To znači da pritisak istog slova, ovisno o trenutnom stanju, može imati više funkcija.

Zvuči magično, zar ne? Znači li to da bi tako mogli izbaciti potrebu za našim mehaničkim glodavcem?

Odgovor je glasno i jasno “da”.

Dobrodošli u vim

Vim je modalni tekstualni editor koji vam poprilično proširi vidike kad ga se primite. Za alat star 30 godina odlično se drži; sudeći po anketi Stack Overflowa iz 2019. godine, to je peti po redu od najpopularnijih IDE-a.

Vim nam omogućuje toliko stvari da nažalost ne stanu u jedan članak, tako da ćemo ovim putem prikazati samo najosnovnije stvari. No ako želite puni vodič, tu će Vam od koristi biti vimtutor, koji dolazi u paketu s vimom.

Osnove kretanja

Po defaultu, vim započinje u `normal` stanju, koje je zapravo namijenjeno kretanju po tekstu. Iz bilo kojeg stanja se možete vratiti u `normal mode` pritiskom tipke `Escape`.

Budimo realni, pisanje koda je zapravo samo dio potrošenog vremena u svakodnevnom radu, zato se početno stanje i zove “normal” jer je pretpostavka da ćete u njemu provesti najviše vremena.

Umjesto strelicama, po tekstu se možete kretati tipkama `h` (lijevo), `j` (dolje), `k` (gore) i `l` (desno). Ako vam je to presporo i htjeli biste se kretati po riječima, pritiskom na `w` kursor skače na iduću riječ, a pomoću `b` skače na početak prethodne riječi.

Ni to Vam nije dovoljno? Pritiskom ctrl+d se kursor pomakne pola ekrana dolje, a pomoću ctrl+u ga se vraća pola ekrana gore. S ovih 8 naučenih shortcuta pokrili smo većinu kretanja koje radite u ne-modalnom editoru.

 

Nekad je potrebno i unijeti neki tekst, a za to moramo ući u “insert” stanje.

To je moguće na nekoliko načina. Pritiskom slova `i` možemo unijeti tekst na mjesto ispred kursora, pritiskom slova `a` ga unosimo nakon kursora.

Pritiskom slova `o` unosimo tekst u redak iznad trenutnog. Također, i kombinacija shifta i navedenih slova ulazi u `insert mode`, no to prepuštamo čitatelju za vježbu.

 

Tko je birao ta slova?

Možda se pitate zašto bi itko učio ove opskurne naredbe – razlozi zašto su baš ta slova odabrana su povijesni. Slova za kretanje po tekstu su smještena u središnji red, gdje bi Vam prsti i trebali biti kada pravilno stavite ruke na tipkovnicu.

Jedina iznimka je tipka `Escape`; ona je prije bila na mjestu gdje se sada nalazi `Tab`, no u današnje doba nije problem prenamijeniti npr. `Caps Lock` u `Escape`.

Kada se budete morali svađati s nekim na Internetu, držanje tipke `Shift` bit će jednako učinkovito. Jednom kad se naviknete na takvu navigaciju nećete imati potrebu micati ruke s tipkovnice. Uštedjeti ćete na vremenu, a i izgledat ćete kao pravi haker.

U običnim editorima biste koristili ili miš ili strelice kako biste se pozicionirali do željene pozicije u tekstu. Vim pruža mogućnost pomicanja kursora na određeno slovo/znak u retku, kombinacijom `f<znak>` možete skočiti na točku, zarez ili bilo koji drugi znak koji tražite u djeliću sekunde.

Vim također pruža i određena kretanja koja Vam možda ne bi pala na pamet, poput skoka na odgovarajuću zagradu koja je par trenutnoj pomoću `%`. Pritiskom `{` ili `}` skačete na prvu praznu liniju prije ili nakon bloka teksta. Pritiskom na `/` (ili `?`) započinjete pretragu prema dolje (ili gore).

Kombinacijom `<broj>G` pomaknete kursor na danu liniju, npr. `44G` skoči na 44. liniju, a samo `G` skoči na kraj datoteke.

Znamo da je ovo puno za procesirati tako da ćemo tu i stati. Kako biste izašli iz vima, pritisnite `:` da biste ušli u `command mode`, napišite `quit` i pritisnite `Enter`.

 

Spremni modernizirati svakodnevicu?

Kao program, vim zahtijeva vrlo malo memorije te ovisno o količini pluginova koje odlučite upogoniti je vrlo brz (sve u usporedbi s trenutno najpopularnijim IDE-ovima). Također, za razliku od nekih editora, vim će sasvim uredno otvoriti datoteku i od više desetaka tisuća linija.

Ako ste i dalje zainteresirani, provjerite ima li vaš najdraži IDE `vim plugin`. Predlažemo ovaj način učenja vima jer ste i dalje produktivni, no uz malo više truda.

Za malo dublji pogled u vim, pročitajte nastavak ovog članka gdje prolazimo vimove visual i command modove, pokazujemo kako rade neki pluginovi i na kraju se okušamo u pravom C++ projektu.

Slobodno bacite miš kroz prozor i dajte si priliku naučiti nešto novo, ovo je samo početak avanture s vimom 🙂

********************

Ovakve i slične sadržaje moći ćete u brojnim predavanjima doživjeti i uživo na .debugu, 2. i 3. lipnja. Ulaznice su u prodaji, još kratko vrijeme po “early bird” cijenama…

Kupi ulaznicu

999 kn

Ulaznica

250 kn

Studentska ulaznica

650 kn

Online ulaznica

200 kn

Studentska online ulaznica