Ivan Pešić | fe0a9a3 | 2025-01-31 15:20:03 +0100 | [diff] [blame] | 1 | =============================================================================== |
| 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 | |
| 25 | PAMĆ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 | |
| 32 | PAMĆ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 | |
| 40 | NAPOMENA: U registre može i da se briše, npr. "sdiw će obrisati reč pod |
| 41 | kursorom u registar s. |
| 42 | |
| 43 | REFERENCE: 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 | |
| 62 | NAPOMENA: 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 | |
| 69 | NAPOMENA: isto može da se postigne sa :pu=system('date') |
| 70 | ili sa manje pritisaka na tastere: :r!date |
| 71 | |
| 72 | REFERENCA: 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 | |
| 90 | NAPOMENA: 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 | |
| 106 | NAPOMENA: 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 | |
| 110 | REFERENCE: Brojčani registri :h quote0 |
| 111 | |
| 112 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 113 | Lekcija 2.1.4: LEPOTA MARKERA |
| 114 | |
| 115 | ** Izbegavanje aritmetike kod neiskusnih programera ** |
| 116 | |
| 117 | NAPOMENA: 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 | |
| 127 | NAPOMENA: 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 | |
| 133 | PAMĆ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 | |
| 138 | NAPOMENA: 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 | |
| 157 | NOTE: 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 | |
| 161 | REFERENCE: 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 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |