blob: 420da0b5677a7c9d3c49fd4376fb79fedf587c83 [file] [log] [blame]
Ivan Pešićfe0a9a32025-01-31 15:20:03 +01001===============================================================================
2= D o b r o d o š l i u VIM p r i r u č n i k - Verzija 1.7 =
3===============================================================================
4= DRUGO P O G L A V LJ E =
5===============================================================================
6
7 Evo zmajeva: ako je ovo vaš prvi dodir sa programom vim i nameravali
8 ste da uronite u uvodno poglavlje, molimo vas da otkucate :q<enter> i
9 pokušate ponovo.
10
11 Približno vreme potrebno za uspešan završetak ovog poglavlja je
12 između 8 i 10 minuta, u zavisnosti od vremena potrošenog na
13 eksperimentisanje.
14
15~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16 Lekcija 2.1.1: IMENOVANI REGISTRI
17
18
19 ** Sačuvajte istovremeno dve trgnute reči, pa ih nalepite **
20
21 1. Pomerite kursor na liniju ispod obeleženu sa --->
22
23 2. Postavite se na bilo koje slovo reči Pera i otkucajte "ayiw
24
25PAMĆENJE: u registar(") (a) (y)ank [trgni] (i)nner [unutrašnju] (w)ord [reč]
26
27 3. Postavite se unapred na reč kolačića (fk ili $B ili /ko<enter>) i
28 otkucajte "byiw
29
30 4. Postavite se na bilo koje slovo reči ’Žika’ i otkucajte ciw<C-r>a<ESC>
31
32PAMĆENJE: (c)hange [izmeni] (i)nner [unutrašnju] (w)ord [reč] sa
33 <sadržajem (r)egistra> (a)
34
35 5. Postavite se na bilo koje slovo reči ’torte’ i otkucajte ciw<C-r>b<ESC>
36
37---> a) Od sada će Pera biti zadužen za sledovanja kolačića
38 b) U tom smislu, Žika će samostalno odlučivati o sudbini torte
39
40NAPOMENA: U registre može i da se briše, npr. "sdiw će obrisati reč pod
41 kursorom u registar s.
42
43REFERENCE: Registri :h registers
44 Imenovani registri :h quotea
45 Pokreti :h motion.txt<enter> /inner<enter>
46 CTRL-R :h insert<enter> /CTRL-R<enter>
47
48~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49 Lekcija 2.1.2: REGISTAR IZRAZA
50
51 ** Umećite rezultate izračunavanja u letu **
52
53 1. Pomerite kursor na liniju ispod obeleženu sa --->
54
55 2. Postavite se na bilo koju cifru broja u njoj
56
57 3. Otkucajte ciw<C-r>=60*60*24<enter>
58
59 4. U narednoj liniji, pređite u režim umetanje i dodajte današnji datum
60 pomoću <C-r>=system('date')<enter>
61
62NAPOMENA: Svi pozivi operativnom sistemu zavise od sistema na kojem se
63 izvršavaju, npr. na Windows upotrebite system('date /t') ili
64 :r!date /t
65
66---> Zaboravio sam koliko sekundi ima u danu, 84600 je l da?
67 Danas je:
68
69NAPOMENA: isto može da se postigne sa :pu=system('date')
70 ili sa manje pritisaka na tastere: :r!date
71
72REFERENCA: Registar izraza :h quote=
73
74~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75 Lekcija 2.1.3: BROJČANI REGISTRI
76
77 ** Pritiskajte yy i dd i uočite efekat koji imaju na registre **
78
79 1. Pomerite kursor na liniju ispod obeleženu sa --->
80
81 2. trgnite nultu liniju, pa zatim pogledajte sadržaje registara sa
82 :reg<enter>
83
84 3. obrišite liniju 0. sa "cdd, pa zatim pogledajte sadržaje registara
85 (gde očekujete da vidite liniju 0?)
86
87 4. nastavite da brišete svaku narednu liniju, posmatrajući usput registre
88 sa :reg
89
90NAPOMENA: trebalo bi da primetite kako se brisanja celih linija pomeraju niz
91 listu nakon dodavanja novih obrisanih linija
92 5. Sada (p)aste [nalepite] sledeće registre u redosledu:
93 c, 7, 4, 8, 2. tj. sa "7p
94
95---> 0. Ovo
96 9. lelujavo
97 8. tajna
98 7. je
99 6. na
100 5. osi
101 4. jedna
102 3. ratna
103 2. poruka
104 1. poštovanja
105
106NAPOMENA: brisanja kompletnih linija (dd) mnogo duže ostaju u brojčanim
107 registrima u odnosu na trganja celih linija ili brisanja koja
108 koriste manje pokrete
109
110REFERENCE: Brojčani registri :h quote0
111
112~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113 Lekcija 2.1.4: LEPOTA MARKERA
114
115 ** Izbegavanje aritmetike kod neiskusnih programera **
116
117NAPOMENA: uobičajen problem prilikom pisanja koda je premeštanje velikih
118 delova koda. Sledeća tehnika pomaže da se spreči potreba za
119 izračunavanjima broja linije koji je potreban u operacijama kao što
120 su "a147d ili :945,1091d a ili još gore, prvobitnom upotrebom
121 i<C-r>=1091-945<enter>
122
123 1. Pomerite kursor na liniju ispod obeleženu sa --->
124
125 2. Pređite na prvu liniju funkcije i markirajte je sa ma
126
127NAPOMENA: tačna pozicija unutar linije NIJE bitna!
128
129 3. Pomerite se na kraj linije i onda na kraj bloka koda sa $%
130
131 4. Obrišite blok u registar sa "ad'a
132
133PAMĆENJE: u registar(") (a) postavi (d)eletion [brisanje] od kursora do
134 LINIJE koja sadrži marker(') (a)
135
136 5. Nalepite blok između BBB i CCC sa "ap
137
138NAPOMENA: vežbajte više puta ovu operaciju da bi vam postala prirodna
139 ma$%"ad'a
140
141---> AAA
142 function itGotRealBigRealFast() {
143 if ( somethingIsTrue ) {
144 doIt()
145 }
146 // taksonomija naše funkcije se izmenila pa više nema
147 // azbučnog smisla na svojoj trenutnoj poziciji
148
149 // zamislite stotine linija koda
150
151 // naivno biste se pomerili na početak i kraj i zapisali ili
152 // zapamtili oba broja linije
153 }
154 BBB
155 CCC
156
157NOTE: markeri i registri ne dele prostor imena, tako da je registar a
158 potpuno nezavisan od markera a. Ovo nije slučaj sa registrima i
159 makroima.
160
161REFERENCE: Markeri :h marks
162 Pokreti markera :h mark-motions (razlika između ' i `)
163
164~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165 REZIME lekcije 2.1
166
167 1. Da sačuvate (trgnete, obrišete) tekst u, i vratite (nalepite) iz, ukupno
168 26 registara (a-z)
169 2. Trgnite celu reč sa bilo koje pozicije unutar reči: yiw
170 3. Izmenite celu reč sa bilo koje pozicije unutar reči: ciw
171 4. Umetnite tekst direktno iz registra u režimu umetanje: (C-r)a
172
173 5. Umetnite rezultate prostih aritmetičkih operacija: (C-r)=60*60<enter> u
174 režimu umetanja
175 6. Umetnite rezultate sistemskih poziva: (C-r)=system('ls -1') u režimu
176 umetanja
177
178 7. Pogledajte sadržaj registara sa :reg
179 8. Naučite krajnje odredište brisanja kompletnih linija: dd u brojčane
180 registre, tj. opadajući od 1 - 9. Imajte na umu da se brisanja celih
181 linija održavaju u registrima duže od bilo koje druge operacije
182 9. Naučite krajnja odredišta svih trganja u brojčane registre i koliko se
183 tamo zadržavaju
184
185 10. Postavljajte markere iz komandnog režima m[a-zA-Z0-9]
186 11. Premeštajte po linijama na marker sa '
187
188~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
189
190 Ovim se završava drugo poglavlje Vim priručnika. Još uvek se radi na njemu.
191
192 Ovo poglavlje je napisao Pol D. Parker.
193
194 Preveo na srpski Ivan Pešić.
195
196~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~