diff options
Diffstat (limited to 'mnv/runtime/tutor/tutor2.sr')
| -rw-r--r-- | mnv/runtime/tutor/tutor2.sr | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/mnv/runtime/tutor/tutor2.sr b/mnv/runtime/tutor/tutor2.sr new file mode 100644 index 0000000000..e626c3fc88 --- /dev/null +++ b/mnv/runtime/tutor/tutor2.sr @@ -0,0 +1,196 @@ +=============================================================================== += D o b r o d o š l i u MNV 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 mnv 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 ' + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Omnv se završava drugo poglavlje MNV priručnika. Još uvek se radi na njemu. + + Ovo poglavlje je napisao Pol D. Parker. + + Preveo na srpski Ivan Pešić. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
