blob: 420da0b5677a7c9d3c49fd4376fb79fedf587c83 [file] [log] [blame]
===============================================================================
= D o b r o d o š l i u VIM p r i r u č n i k - Verzija 1.7 =
===============================================================================
= DRUGO P O G L A V LJ E =
===============================================================================
Evo zmajeva: ako je ovo vaš prvi dodir sa programom vim i nameravali
ste da uronite u uvodno poglavlje, molimo vas da otkucate :q<enter> i
pokušate ponovo.
Približno vreme potrebno za uspešan završetak ovog poglavlja je
između 8 i 10 minuta, u zavisnosti od vremena potrošenog na
eksperimentisanje.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lekcija 2.1.1: IMENOVANI REGISTRI
** Sačuvajte istovremeno dve trgnute reči, pa ih nalepite **
1. Pomerite kursor na liniju ispod obeleženu sa --->
2. Postavite se na bilo koje slovo reči Pera i otkucajte "ayiw
PAMĆENJE: u registar(") (a) (y)ank [trgni] (i)nner [unutrašnju] (w)ord [reč]
3. Postavite se unapred na reč kolačića (fk ili $B ili /ko<enter>) i
otkucajte "byiw
4. Postavite se na bilo koje slovo reči ’Žika’ i otkucajte ciw<C-r>a<ESC>
PAMĆENJE: (c)hange [izmeni] (i)nner [unutrašnju] (w)ord [reč] sa
<sadržajem (r)egistra> (a)
5. Postavite se na bilo koje slovo reči ’torte’ i otkucajte ciw<C-r>b<ESC>
---> a) Od sada će Pera biti zadužen za sledovanja kolačića
b) U tom smislu, Žika će samostalno odlučivati o sudbini torte
NAPOMENA: U registre može i da se briše, npr. "sdiw će obrisati reč pod
kursorom u registar s.
REFERENCE: Registri :h registers
Imenovani registri :h quotea
Pokreti :h motion.txt<enter> /inner<enter>
CTRL-R :h insert<enter> /CTRL-R<enter>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lekcija 2.1.2: REGISTAR IZRAZA
** Umećite rezultate izračunavanja u letu **
1. Pomerite kursor na liniju ispod obeleženu sa --->
2. Postavite se na bilo koju cifru broja u njoj
3. Otkucajte ciw<C-r>=60*60*24<enter>
4. U narednoj liniji, pređite u režim umetanje i dodajte današnji datum
pomoću <C-r>=system('date')<enter>
NAPOMENA: Svi pozivi operativnom sistemu zavise od sistema na kojem se
izvršavaju, npr. na Windows upotrebite system('date /t') ili
:r!date /t
---> Zaboravio sam koliko sekundi ima u danu, 84600 je l da?
Danas je:
NAPOMENA: isto može da se postigne sa :pu=system('date')
ili sa manje pritisaka na tastere: :r!date
REFERENCA: Registar izraza :h quote=
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lekcija 2.1.3: BROJČANI REGISTRI
** Pritiskajte yy i dd i uočite efekat koji imaju na registre **
1. Pomerite kursor na liniju ispod obeleženu sa --->
2. trgnite nultu liniju, pa zatim pogledajte sadržaje registara sa
:reg<enter>
3. obrišite liniju 0. sa "cdd, pa zatim pogledajte sadržaje registara
(gde očekujete da vidite liniju 0?)
4. nastavite da brišete svaku narednu liniju, posmatrajući usput registre
sa :reg
NAPOMENA: trebalo bi da primetite kako se brisanja celih linija pomeraju niz
listu nakon dodavanja novih obrisanih linija
5. Sada (p)aste [nalepite] sledeće registre u redosledu:
c, 7, 4, 8, 2. tj. sa "7p
---> 0. Ovo
9. lelujavo
8. tajna
7. je
6. na
5. osi
4. jedna
3. ratna
2. poruka
1. poštovanja
NAPOMENA: brisanja kompletnih linija (dd) mnogo duže ostaju u brojčanim
registrima u odnosu na trganja celih linija ili brisanja koja
koriste manje pokrete
REFERENCE: Brojčani registri :h quote0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lekcija 2.1.4: LEPOTA MARKERA
** Izbegavanje aritmetike kod neiskusnih programera **
NAPOMENA: uobičajen problem prilikom pisanja koda je premeštanje velikih
delova koda. Sledeća tehnika pomaže da se spreči potreba za
izračunavanjima broja linije koji je potreban u operacijama kao što
su "a147d ili :945,1091d a ili još gore, prvobitnom upotrebom
i<C-r>=1091-945<enter>
1. Pomerite kursor na liniju ispod obeleženu sa --->
2. Pređite na prvu liniju funkcije i markirajte je sa ma
NAPOMENA: tačna pozicija unutar linije NIJE bitna!
3. Pomerite se na kraj linije i onda na kraj bloka koda sa $%
4. Obrišite blok u registar sa "ad'a
PAMĆENJE: u registar(") (a) postavi (d)eletion [brisanje] od kursora do
LINIJE koja sadrži marker(') (a)
5. Nalepite blok između BBB i CCC sa "ap
NAPOMENA: vežbajte više puta ovu operaciju da bi vam postala prirodna
ma$%"ad'a
---> AAA
function itGotRealBigRealFast() {
if ( somethingIsTrue ) {
doIt()
}
// taksonomija naše funkcije se izmenila pa više nema
// azbučnog smisla na svojoj trenutnoj poziciji
// zamislite stotine linija koda
// naivno biste se pomerili na početak i kraj i zapisali ili
// zapamtili oba broja linije
}
BBB
CCC
NOTE: markeri i registri ne dele prostor imena, tako da je registar a
potpuno nezavisan od markera a. Ovo nije slučaj sa registrima i
makroima.
REFERENCE: Markeri :h marks
Pokreti markera :h mark-motions (razlika između ' i `)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
REZIME lekcije 2.1
1. Da sačuvate (trgnete, obrišete) tekst u, i vratite (nalepite) iz, ukupno
26 registara (a-z)
2. Trgnite celu reč sa bilo koje pozicije unutar reči: yiw
3. Izmenite celu reč sa bilo koje pozicije unutar reči: ciw
4. Umetnite tekst direktno iz registra u režimu umetanje: (C-r)a
5. Umetnite rezultate prostih aritmetičkih operacija: (C-r)=60*60<enter> u
režimu umetanja
6. Umetnite rezultate sistemskih poziva: (C-r)=system('ls -1') u režimu
umetanja
7. Pogledajte sadržaj registara sa :reg
8. Naučite krajnje odredište brisanja kompletnih linija: dd u brojčane
registre, tj. opadajući od 1 - 9. Imajte na umu da se brisanja celih
linija održavaju u registrima duže od bilo koje druge operacije
9. Naučite krajnja odredišta svih trganja u brojčane registre i koliko se
tamo zadržavaju
10. Postavljajte markere iz komandnog režima m[a-zA-Z0-9]
11. Premeštajte po linijama na marker sa '
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ovim se završava drugo poglavlje Vim priručnika. Još uvek se radi na njemu.
Ovo poglavlje je napisao Pol D. Parker.
Preveo na srpski Ivan Pešić.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~