| =============================================================================== |
| = D o b r o d o l i u VIM p r i r u è n i k - Verzija 1.7 = |
| =============================================================================== |
| |
| Vim je moæan editor sa mnogo komandi, suvie da bismo ih ovde sve |
| opisali. Priruènik je zamiljen da opie dovoljno komandi da biste |
| mogli lagodno da koristite Vim kao editor opte namene. |
| |
| Priblino vreme potrebno za uspean zavretak priruènika je izmeðu |
| 25 i 30 minuta, u zavisnosti od vremena potroenog na vebu. |
| |
| UPOZORENJE: |
| Komande u lekcijama æe menjati tekst. Iskopirajte ovaj fajl i |
| vebajte na kopiji (ako ste pokrenuli "vimtutor" ovo je veæ kopija). |
| |
| Vano je upamtiti da je ovaj priruènik zamiljen za aktivnu vebu. |
| To znaèi da morate upotrebljavati komande o kojima èitate da biste |
| ih nauèili. Ako samo èitate tekst, zaboraviæete komande! |
| |
| Ako je Caps Lock ukljuèen ISKLJUÈITE ga. Pritisnite taster j dovoljno |
| puta da lekcija 1.1 cela stane na ekran. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 1.1: POMERANJE KURSORA |
| |
| |
| ** Za pomeranje kursora, pritiskajte tastere h,j,k,l kako je prikazano ** |
| ^ |
| k Savet: h je s leve strane i pomera kursor u levo. |
| < h l > l je s desne strane i pomera kursor u desno. |
| j j izgleda kao strelica nanie. |
| v |
| 1. Pomerajte kursor po ekranu dok se ne naviknete na komande. |
| |
| 2. Pritisnite taster (j) dok ne poène da se ponavlja. |
| Sada znate kako da doðete do naredne lekcije. |
| |
| 3. Koristeæi taster j preðite na lekciju 1.2. |
| |
| NAPOMENA: Ako niste sigurni ta ste zapravo pritisnuli, pritisnite <ESC> |
| za prelazak u Normal mod i pokuajte ponovo. |
| |
| NAPOMENA: Strelice takoðe pomeraju kursor, ali koriæenje tastera hjkl je |
| znatno bre, kad se jednom naviknete na njih. Zaista! |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 1.2: IZLAZAK IZ VIM-a |
| |
| |
| !! UPOZORENJE: Pre izvoðenja bilo kog koraka, proèitajte celu lekciju!! |
| |
| 1. Pritisnite <ESC> (editor je sada u Normal modu). |
| |
| 2. Otkucajte: :q! <ENTER>. |
| Ovime se izlazi iz editora, sa GUBITKOM svih izmena. |
| |
| 3. Kada se pojavi komandni prompt, unesite komandu koja je pokrenula |
| ovaj priruènik: vimtutor <ENTER> |
| |
| 4. Ako ste upamtili ove korake, izvrite ih redom od 1 do 3 da biste |
| izali iz editora i ponovo ga pokrenuli. |
| |
| NAPOMENA: :q! <ENTER> ponitava sve izmene koje ste napravili. |
| U narednim lekcijama nauèiæete kako da saèuvate izmene. |
| |
| 5. Pomerite kursor na lekciju 1.3. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 1.3: IZMENA TEKSTA - BRISANJE |
| |
| |
| ** Pritisnite x za brisanje znaka pod kursorom. ** |
| |
| 1. Pomerite kursor na red oznaèen sa --->. |
| |
| 2. Da biste ispravili greke, pomerajte kursor dok se |
| ne naðe na slovu koje treba izbrisati. |
| |
| 3. Pritisnite taster x da izbriete neeljeno slovo. |
| |
| 4. Ponavljajte korake od 2 do 4 dok ne ispravite sve greke. |
| |
| ---> RRRibaa riibi grizzze rrreepp. |
| |
| 5. Kad ispravite red, preðite na lekciju 1.4. |
| |
| NAPOMENA: Dok koristite priruènik, nemojte uèiti komande napamet, |
| veæ vebajte njihovu primenu. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 1.4: IZMENA TEKSTA - UBACIVANJE |
| |
| |
| ** Pritisnite i za ubacivanje teksta ispred kursora. ** |
| |
| 1. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| |
| 2. Da biste tekst prvog reda izjednaèili s tekstom drugog, namestite |
| kursor na prvi znak POSLE kog æete ubaciti potreban tekst. |
| |
| 3. Pritisnite i pa unesite potrebne dopune. |
| |
| 4. Po ispravci svake greke pritisnite <ESC> da se vratite u Normal mod. |
| Ponovite korake od 2 do 4 da biste ispravili celu reèenicu. |
| |
| ---> Do teka neoje v red. |
| ---> Deo teksta nedostaje iz ovog reda. |
| |
| 5. Preðite na sledeæu lekciju. |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 1.5: IZMENA TEKSTA - DODAVANJE |
| |
| |
| ** Pritisnite A za dodavanje teksta. ** |
| |
| 1. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| Nije vano gde se nalazi kursor u tom redu. |
| |
| 2. Pritisnite A i unesite dodatni tekst. |
| |
| 3. Poto ste dodali tekst, pritisnite <ESC> za povratak u |
| Normal mod. |
| |
| 4. Pomerite kursor na drugi red oznaèen sa ---> i ponavljajte |
| korake 2 i 3 dok ne ispravite tekst. |
| |
| ---> Deo teksta nedostaje u |
| Deo teksta nedostaje u ovom redu. |
| ---> Deo teksta nedostaje |
| Deo teksta nedostaje i ovde. |
| |
| 5. Preðite na lekciju 1.6. |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 1.6: IZMENA FAJLA |
| |
| |
| ** Upotrebite :wq za snimanje teksta i izlazak iz editora. ** |
| |
| !! UPOZORENJE: Pre izvoðenja bilo kog koraka, proèitajte celu lekciju!! |
| |
| 1. Izaðite iz editora kao u lekciji 1.2: :q! |
| |
| 2. Na komandnom promptu unesite sledeæu komandu: vim tutor <ENTER> |
| 'vim' je komanda za pokretanja Vim editora, 'tutor' je ime fajla koji |
| elite da menjate. Koristite fajl koji imate pravo da menjate. |
| |
| 3. Ubacujte i briite tekst kao u prethodnim lekcijama. |
| |
| 4. Snimite izmenjeni tekst i izaðite iz Vim-a: :wq <ENTER> |
| |
| 5. Ponovo pokrenite vimtutor i proèitajte rezime koji sledi. |
| |
| 6. Poto proèitate korake iznad i u potpunosti ih razumete: |
| izvrite ih. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 1 |
| |
| |
| 1. Kursor se pomera strelicama ili pomoæu tastera hjkl . |
| h (levo) j (dole) k (gore) l (desno) |
| |
| 2. Za pokretanje Vim-a iz shell-a: vim IME_FAJLA <ENTER> |
| |
| 3. Izlaz: <ESC> :q! <ENTER> sve promene su izgubljene. |
| ILI: <ESC> :wq <ENTER> promene su saèuvane. |
| |
| 4. Brisanje znaka na kome se nalazi kursor: x |
| |
| 5. Ubacivanja ili dodavanje teksta: |
| i unesite tekst <ESC> unos ispred kursora |
| A unesite tekst <ESC> dodavanje na kraju reda |
| |
| NAPOMENA: Pritiskom na <ESC> prebacujete Vim u Normal mod i |
| prekidate neeljenu ili delimièno izvrenu komandu. |
| |
| Nastavite sa lekcijom 2. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.1: NAREDBE BRISANJA |
| |
| |
| ** Otkucajte dw za brisanje reèi. ** |
| |
| 1. Pritisnite <ESC> da biste bili sigurni da ste u Normal modu. |
| |
| 2. Pomerite kursor na red oznaèen sa --->. |
| |
| 3. Pomerite kursor na poèetak reèi koju treba izbrisati. |
| |
| 4. Otkucajte dw da biste uklonili reè. |
| |
| NAPOMENA: Slovo d æe se pojaviti na dnu ekrana kad ga otkucate. Vim èeka |
| da otkucate w . Ako je prikazano neko drugo slovo, pogreili ste u |
| kucanju; pritisnite <ESC> i pokuajte ponovo. (Ako se ne pojavi |
| nita, moda je iskljuèena opcija 'showcmd': vidi lekciju 6.5.) |
| |
| ---> Neke reèi smeno ne pripadaju na papir ovoj reèenici. |
| |
| 5. Ponavljajte korake 3 i 4 dok ne ispravite reèenicu, pa |
| preðite na lekciju 2.2. |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.2: JO BRISANJA |
| |
| |
| ** Otkucajte d$ za brisanje znakova do kraja reda. ** |
| |
| 1. Pritisnite <ESC> da biste bili sigurni da ste u Normal modu. |
| |
| 2. Pomerite kursor na red oznaèen sa --->. |
| |
| 3. Pomerite kursor do kraja ispravnog dela reèenice |
| (POSLE prve . ). |
| |
| 4. Otkucajte d$ za brisanje ostatka reda. |
| |
| ---> Neko je uneo kraj ovog reda dvaput. kraj ovog reda dvaput. |
| |
| 5. Preðite na lekciju 2.3 za podrobnije objanjenje. |
| |
| |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.3: O OPERATORIMA I POKRETIMA |
| |
| |
| Mnoge komande za izmenu teksta sastoje se od operatora i pokreta. |
| Oblik komande brisanja sa d operatorom je sledeæi: |
| |
| d pokret |
| |
| Pri èemu je: |
| d - operator brisanja. |
| pokret - ono na èemu æe se operacija izvravati (opisano u nastavku). |
| |
| Kratak spisak pokreta: |
| w - sve do poèetka sledeæe reèi, NE UKLJUÈUJUÆI prvo slovo. |
| e - sve do kraja tekuæe reèi, UKLJUÈUJUÆI poslednje slovo. |
| $ - sve do kraje reda, UKLJUÈUJUÆI poslednje slovo. |
| |
| Kucanjem de brisaæe se tekst od kursora do kraja reèi. |
| |
| NAPOMENA: Pritiskom samo na taster pokreta dok ste u Normal modu, bez |
| operatora, kursor se pomera kao to je opisano. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.4: KORIÆENJE BROJANJA ZA POKRETE |
| |
| |
| ** Unoenjem nekog broja pre pokreta, pokret se izvrava taj broj puta. ** |
| |
| 1. Pomerite kursor na red oznaèen sa --->. |
| |
| 2. Otkucajte 2w da pomerite kursor dve reèi napred. |
| |
| 3. Otkucajte 3e da pomerite kursor na kraj treæe reèi napred. |
| |
| 4. Otkucajte 0 (nulu) da pomerite kursor na poèetak reda. |
| |
| 5. Ponovite korake 2 i 3 s nekim drugim brojevima. |
| |
| ---> Reèenica sa reèima po kojoj moete pomerati kursor. |
| |
| 6. Preðite na lekciju 2.5. |
| |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.5: KORIÆENJE BROJANJA ZA VEÆE BRISANJE |
| |
| |
| ** Unoenje nekog broja s operatorom ponavlja operator taj broj puta. ** |
| |
| U kombinaciji operatora brisanja s pokretima spomenutim iznad |
| moete uneti broj pre pokreta da biste izbrisali vie znakova: |
| |
| d broj pokret |
| |
| 1. Pomerite kursor na prvo slovo u reèi s VELIKIM SLOVIMA u redu |
| oznaèenom sa --->. |
| |
| 2. Otkucajte d2w da izbriete dve reèi sa VELIKIM SLOVIMA |
| |
| 3. Ponovite korake 1 i 2 sa razlièitim brojevima da izbriete |
| uzastopne reèi sa VELIKIM SLOVIMA koriæenjem samo jedne komande. |
| |
| ---> ovaj ABCÈÆ DÐE red FGHI JK LMN OP s reèima je RS TUVZ ispravljen. |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.6: OPERACIJE NAD REDOVIMA |
| |
| |
| ** Otkucajte dd za brisanje celog reda. ** |
| |
| Zbog uèestalosti brisanja celih redova, autori Vi-ja odluèili su da |
| je lake brisati redove ako se otkuca d dvaput. |
| |
| 1. Pomerite kursor na drugi red u donjoj strofi. |
| 2. Otkucajte dd da ga izbriete. |
| 3. Pomerite kursor na èetvrti red. |
| 4. Otkucajte 2dd da biste izbrisali dva reda. |
| |
| ---> 1) Sedlo mi je od marame, |
| ---> 2) blato na sve strane, |
| ---> 3) uzda od kanapa, |
| ---> 4) auto mi je ovde, |
| ---> 5) satovi pokazuju vreme, |
| ---> 6) a biè mi je od oèina |
| ---> 7) prebijena tapa. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 2.7: PONITAVANJE PROMENA |
| |
| |
| ** Pritisnite u za ponitavanje poslednje komande, U za ceo red. ** |
| |
| 1. Pomerite kursor na red oznaèen sa ---> i postavite ga na mesto |
| prve greke. |
| 2. Otkucajte x da izbriete prvi neeljeni znak. |
| 3. Otkucajte u da ponitite poslednju izvrenu komandu. |
| 4. Sad ispravite sve greke u redu koristeæi komandu x . |
| 5. Otkucajte veliko U da biste vratili sadraj reda u prvobitno |
| stanje. |
| 6. Onda otkucajte u nekoliko puta da biste ponitili U |
| i prethodne komande. |
| 7. Sad otkucajte CTRL-R (dreæi CTRL dok pritiskate R) |
| nekoliko puta da biste vratili izmene (ponitili ponitavanja). |
| |
| ---> Iiisspravite greke uu ovvom redu ii poonititeee ih. |
| |
| 8. Ovo su veoma korisne komande. Preðite na rezime lekcije 2. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 2 |
| |
| |
| 1. Brisanje od kursora do sledeæe reèi: dw |
| 2. Brisanje od kursora do kraja reda: d$ |
| 3. Brisanje celog reda: dd |
| |
| 4. Za ponavljanje pokreta prethodno unesite broj: 2w |
| 5. Oblik komande za izmenu: |
| operator [broj] pokret |
| gde je: |
| operator - ta uraditi, recimo d za brisanje |
| [broj] - neobavezan broj ponavljanja pokreta |
| pokret - kretanje po tekstu na kome se radi, |
| kao to je: w (reè), $ (kraj reda), itd. |
| |
| 6. Pomeranje kursora na poèetak reda: 0 |
| |
| 7. Za ponitavanje prethodnih izmena, pritisnite: u (malo u) |
| Za ponitavanje svih promena u redu, pritisnite: U (veliko U) |
| Za vraæanja promena, otkucajte: CTRL-R |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 3.1: KOMANDA POSTAVLJANJA |
| |
| |
| ** Otkucajte p da postavite prethodno izbrisan tekst iza kursora. ** |
| |
| 1. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| |
| 2. Otkucajte dd da izbriete red i smestite ga u Vim registar. |
| |
| 3. Pomerite kursor na red c), IZNAD mesta gde treba postaviti izbrisan red. |
| |
| 4. Otkucajte p da postavite red ispod kursora. |
| |
| 5. Ponavljajte korake 2 do 4 da biste postavili sve linije u pravilnom |
| redosledu. |
| |
| ---> d) prebijena tapa. |
| ---> b) uzda od kanapa, |
| ---> c) a biè mi je od oèina |
| ---> a) Sedlo mi je od marame, |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 3.2: KOMANDA ZAMENE |
| |
| |
| ** Otkucajte rx da zamenite znak ispod kursora slovom x . ** |
| |
| 1. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| |
| 2. Pomerite kursor tako da se nalazi na prvoj greci. |
| |
| 3. Otkucajte r i onda znak koji treba da tu stoji. |
| |
| 4. Ponavljajte korake 2 i 3 sve dok prvi red ne bude |
| isti kao drugi. |
| |
| ---> Kedi ju ovej red ugaen, nako je protresao pustane testere! |
| ---> Kada je ovaj red unoen, neko je pritiskao pogrene tastere! |
| |
| 5. Preðite na lekciju 3.2. |
| |
| NAPOMENA: Setite se da treba da uèite vebanjem, ne pamæenjem. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 3.3: OPERATOR IZMENE |
| |
| |
| ** Za izmenu teksta do kraja reèi, otkucajte ce .** |
| |
| 1. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| |
| 2. Postavite kursor na a u rakdur. |
| |
| 3. Otkucajte ce i ispravite reè (u ovom sluèaju otkucajte ed ). |
| |
| 4. Pritisnite <ESC> i pomerite kursor na sledeæi znak koji |
| treba ispraviti. |
| |
| 5. Ponavljajte korake 3 i 4 sve dok prva reèenica ne bude ista |
| kao druga. |
| |
| ---> Ovaj rakdur ima nekoliko rejga koje treflja isprpikati operagrom izmene. |
| ---> Ovaj red ima nekoliko reèi koje treba ispraviti operatorom izmene. |
| |
| Uoèite da ce brie reè i postavlja editor u Insert mod. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 3.4: DALJE IZMENE UPOTREBOM c |
| |
| |
| ** Komanda izmene se koristi sa istim pokretima kao i brisanje. ** |
| |
| 1. Operator izmene se koristi na isti naèin kao i operator brisanja: |
| |
| c [broj] pokret |
| |
| 2. Pokreti su isti, recimo: w (reè) i $ (kraj reda). |
| |
| 3. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| |
| 4. Pomerite kursor na prvu greku. |
| |
| 5. Otkucajte c$ i unesite ostatak reda tako da bude isti kao |
| drugi red, pa pritisnite <ESC>. |
| |
| ---> Kraj ovog reda treba izmeniti tako da izgleda kao red ispod. |
| ---> Kraj ovog reda treba ispraviti koriæenjem c$ komande. |
| |
| NAPOMENA: Za ispravljanje greaka moete koristiti Backspace . |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 3 |
| |
| |
| 1. Za postavljanje teksta koji ste upravo izbrisali, pritisnite p . Ovo |
| postavlja tekst IZA kursora (ako je bio izbrisan jedan ili vie redova |
| sadraj æe doæi na red ispod kursora). |
| |
| 2. Za zamenu znaka na kome se nalazi kursor, pritisnite r i onda |
| eljeni znak. |
| |
| 3. Operator izmene dozvoljava promenu teksta od kursora do pozicije gde |
| se zavrava pokret. Primera radi, kucajte ce za izmenu od kursora do |
| kraja reèi, ili c$ za izmenu od kursora do kraja reda. |
| |
| 4. Oblik operacije izmene je: |
| |
| c [broj] pokret |
| |
| Preðite na narednu lekciju. |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 4.1: POZICIJA KURSORA I STATUS FAJLA |
| |
| ** Pritisnite CTRL-G za prikaz pozicije kursora u tekstu i status fajla. |
| Pritisnite G za pomeranje kursora na neki red u tekstu. ** |
| |
| NAPOMENA: Proèitajte celu lekciju pre izvoðenja bilo kog koraka!! |
| |
| 1. Drite taster CTRL i pritisnite g . Ovo zovemo CTRL-G. |
| Editor æe na dnu ekrana ispisati poruku sa imenom fajla i pozicijom |
| kursora u tekstu. Zapamtite broj reda za 3. korak. |
| |
| NAPOMENA: U donjem desnom uglu moe se videti poziciju kursora ako je |
| ukljuèena opcija 'ruler' (vidi :help ruler ili lekciju 6.5.) |
| |
| 2. Pritisnite G za pomeranje kursora na kraj teksta. |
| Pritisnite 1G ili gg za pomranje kursora na poèetak teksta. |
| |
| 3. Otkucajte broj reda na kome ste malopre bili i onda G . Kursor |
| æe se vratiti na red na kome je bio kad ste otkucali CTRL-G. |
| |
| 4. Ako ste spremni, izvrite korake od 1 do 3. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 4.2: KOMANDE PRETRAIVANJA |
| |
| ** Otkucajte / i onda izraz koji elite da potraite. ** |
| |
| 1. U Normal modu otkucajte znak / . Primietite da se znak pojavio |
| zajedno sa kursorom na dnu ekrana kao i kod komande : . |
| |
| 2. Sada otkucajte 'grrreka' <ENTER>. (Bez razmaka i navodnika.) |
| To je reè koju traite. |
| |
| 3. Za ponovno traenje istog izraza, otkucajte n . |
| Za traenje istog izraza u suprotnom smeru, otkucajte N . |
| |
| 4. Za traenje izraza unatrag, koristite ? umesto / . |
| |
| 5. Za povratak na prethodnu poziciju otkucajte CTRL-O (drite CTRL dok |
| pritiskate O ). Ponavljajte za ranije pozicije. CTRL-I ide napred. |
| |
| ---> "grrreka" je pogreno; umesto grrreka treba da stoji greka. |
| |
| NAPOMENA: Ako pretraga doðe do kraja teksta traenje æe se nastaviti od |
| njegovog poèetka osim ako je opcija 'wrapscan' iskljuèena. |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 4.3: TRAENJE PARA ZAGRADE |
| |
| |
| ** Otkucajte % za nalaenje para ), ] ili } . ** |
| |
| 1. Postavite kursor na bilo koju od ( , [ ili { |
| otvorenih zagrada u redu oznaèenom sa --->. |
| |
| 2. Otkucajte znak % . |
| |
| 3. Kursor æe se pomeriti na odgovarajuæu zatvorenu zagradu. |
| |
| 4. Otkucajte % da pomerite kursor na prvu zagradu u paru. |
| |
| 5. Pomerite kursor na neku od (,),[,],{ ili } i ponovite komandu % . |
| |
| ---> Red ( testiranja obiènih ( [ uglastih ] i { vitièastih } zagrada.)) |
| |
| |
| NAPOMENA: Vrlo korisno u ispravljanju koda sa rasparenim zagradama! |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 4.4: KOMANDA ZAMENE |
| |
| |
| ** Otkucajte :s/staro/novo/g da zamenite 'staro' za 'novo'. ** |
| |
| 1. Pomerite kursor na red oznaèen sa --->. |
| |
| 2. Otkucajte :s/rdi/ri/ <ENTER> . Primetite da ova komanda zamenjuje |
| samo prvo "rdi" u redu. |
| |
| 3. Otkucajte :s/rdi/ri/g . Dodavanje opcije g znaèi da æe se komanda |
| izvriti u celom redu, zamenom svih pojava niza "rdi". |
| |
| ---> rdiba rdibi grdize rep. |
| |
| 4. Za zamenu svih izraza izmeðu neka dva reda, |
| otkucajte :#,#s/staro/novo/g gde su #,# krajnji brojevi redova u opsegu |
| u kome æe se obaviti zamena. |
| Otkucajte :%s/staro/novo/g za zamenu svih izraza u celom tekstu. |
| Otkucajte :%s/staro/novo/gc za nalaenje svih izraza u tekstu i |
| potvrdu zamene. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 4 |
| |
| |
| 1. CTRL-G prikazuje poziciju kursora u tekstu i status fajla. |
| G pomera kursor na kraj teksta. |
| broj G pomera kursor na navedeni red. |
| gg pomera kursor na prvi red teksta. |
| |
| 2. Kucanjem / sa izrazom taj izraz se trai UNAPRED. |
| Kucanjem ? sa izrazom taj izraz se trai UNAZAD. |
| Posle komande traenja koristite n za nalaenje izraza u istom |
| smeru, a N za nalaenje u suprotnom smeru. |
| CTRL-O vraæa kursor na prethodnu poziciju, a CTRL-I na narednu. |
| |
| 3. Kucanjem % kad je kursor na zagradi on se pomera na njen par. |
| |
| 4. Za zamenu prvog izraza staro za izraz novo :s/staro/novo/ |
| Za zamenu svih izraza u celom redu :s/staro/novo/g |
| Za zamenu svih izraza u opsegu linija #,# :#,#s/staro/novo/g |
| Za zamenu u celom tekstu :%s/staro/novo/g |
| Za potvrdu svake zamene dodajte 'c' :%s/staro/novo/gc |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 5.1: IZVRAVANJE SPOLJANJIH KOMANDI |
| |
| |
| ** Otkucajte :! pa spoljanju komandu koju elite da izvrite. ** |
| |
| 1. Otkucajte poznatu komandu : da biste namestili kursor na dno |
| ekrana. Time omoguæavate unos komande u komandnoj liniji editora. |
| |
| 2. Otkucajte znak ! (uzviènik). Ovime omoguæavate |
| izvravanje bilo koje spoljanje komande. |
| |
| 3. Kao primer otkucajte ls posle ! i pritisnite <ENTER>. Ovo æe |
| prikazati sadraj direktorijuma, kao da ste na komandnom promptu. |
| Otkucajte :!dir ako :!ls ne radi. |
| |
| NAPOMENA: Na ovaj naèin moguæe je izvriti bilo koju spoljanju komandu, |
| zajedno sa njenim argumentima. |
| |
| NAPOMENA: Sve : komande se izvravaju poto pritisnete <ENTER> . |
| U daljem tekstu to neæemo uvek napominjati. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 5.2: VIE O SNIMANJU FAJLOVA |
| |
| ** Za snimanje promena, otkucajte :w IME_FAJLA . ** |
| |
| 1. Otkucajte :!dir ili :!ls za pregled sadraja direktorijuma. |
| Veæ znate da morate pritisnuti <ENTER> posle toga. |
| |
| 2. Izaberite ime fajla koji jo ne postoji, npr. TEST. |
| |
| 3. Otkucajte: :w TEST (gde je TEST ime koje ste izabrali.) |
| |
| 4. Time æete snimiti ceo fajl (Vim Tutor) pod imenom TEST. |
| Za proveru, otkucajte opet :!dir ili :!ls za pregled |
| sadraja direktorijuma. |
| |
| NAPOMENA: Ako biste napustili Vim i ponovo ga pokrenuli sa vim TEST , |
| tekst bi bio taèna kopija ovog fajla u trenutku kad ste |
| ga snimili. |
| |
| 5. Izbriite fajl tako to æete otkucati (MS-DOS): :!del TEST |
| ili (Unix): :!rm TEST |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 5.3: SNIMANJE OZNAÈENOG TEKSTA |
| |
| |
| ** Da biste snimili deo teksta, otkucajte v pokret :w IME_FAJLA ** |
| |
| 1. Pomerite kursor na ovu liniju. |
| |
| 2. Pritisnite v i pomerite kursor pet redova ispod. Primetite da je |
| tekst oznaèen inverzno. |
| |
| 3. Pritisnite : . Na dnu ekrana pojaviæe se :'<,'> . |
| |
| 4. Otkucajte w TEST , gde je TEST ime fajla koji jo ne postoji. |
| Proverite da zaista pie :'<,'>w TEST pre nego to pritisnete <ENTER>. |
| |
| 5. Vim æe snimiti oznaèeni tekst u TEST. Proverite sa :!dir ili !ls . |
| Nemojte jo brisati fajl! Koristiæemo ga u narednoj lekciji. |
| |
| NAPOMENA: Komanda v zapoèinje vizuelno oznaèavanje. Moete pomerati kursor |
| i tako menjati velièinu oznaèenog teksta. Onda moete upotrebiti |
| operatore nad tekstom. Na primer, d æe izbrisati oznaèeni tekst. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 5.4: UÈITAVANJE FAJLA U TEKST |
| |
| |
| ** Za ubacivanje sadraja fajla, otkucajte :r IME_FAJLA ** |
| |
| 1. Postavite kursor iznad ove linije. |
| |
| NAPOMENA: Poto izvrite 2. korak videæete tekst iz lekcije 5.3. Tada |
| pomerite kursor DOLE da biste ponovo videli ovu lekciju. |
| |
| 2. Uèitajte fajl TEST koristeæi komandu :r TEST gde je TEST ime fajla |
| koje ste koristili u prethodnoj lekciji. Sadraj uèitanog fajla je |
| ubaèen ispod kursora. |
| |
| 3. Da biste proverili da je fajl uèitan, vratite kursor unazad i |
| primetite dve kopije lekcije 5.3, originalnu i onu iz fajla. |
| |
| NAPOMENA: Takoðe moete uèitati izlaz spoljanje komande. Na primer, |
| :r !ls æe uèitati izlaz komande ls i postaviti ga ispod |
| kursora. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 5 |
| |
| |
| 1. :!komanda izvrava spoljanju komandu. |
| |
| Korisni primeri: |
| (MS-DOS) (Unix) |
| :!dir :!ls - pregled sadraja direktorijuma. |
| :!del FAJL :!rm FAJL - brie fajl FAJL. |
| |
| 2. :w FAJL zapisuje trenutni tekst na disk pod imenom FAJL. |
| |
| 3. v pokret :w IME_FAJLA snima vizuelno oznaèene redove u fajl |
| IME_FAJLA. |
| |
| 4. :r IME_FAJLA uèitava fajl IME_FAJLA sa diska i stavlja |
| njegov sadraj ispod kursora. |
| |
| 5. :r !dir uèitava izlaz komande dir i postavlja ga ispod kursora. |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 6.1: KOMANDA OTVORI |
| |
| |
| ** Pritisnite o da biste otvorili red ispod kursora |
| i preli u Insert mod. ** |
| |
| 1. Pomerite kursor na sledeæi red oznaèen sa --->. |
| |
| 2. Otkucajte malo o da biste otvorili novi red ISPOD kursora |
| i preli u Insert mod. |
| |
| 3. Otkucajte neki tekst i onda pritisnite <ESC> da biste izali |
| iz Insert moda. |
| |
| ---> Kad pritisnete o kursor prelazi u novootvoreni red u Insert modu. |
| |
| 4. Za otvaranje reda IZNAD kursora, umesto malog otkucajte veliko O . |
| Isprobajte na donjem redu oznaèenom sa --->. |
| |
| ---> Otvorite red iznad ovog kucanjem velikog O dok je kursor u ovom redu. |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 6.2: KOMANDA DODAJ |
| |
| |
| ** Otkucajte a za dodavanje teksta IZA kursora. ** |
| |
| 1. Pomerite kursor na poèetak sledeæeg reda oznaèenog sa --->. |
| |
| 2. Kucajte e dok kursor ne doðe na kraj reèi re . |
| |
| 3. Otkucajte a (malo) da biste dodali tekst IZA kursora. |
| |
| 4. Dopunite reè kao to je u redu ispod. Pritisnite <ESC> za izlazak |
| iz Insert moda. |
| |
| 5. Sa e preðite na narednu nepotpunu reè i ponovite korake 3 i 4. |
| |
| ---> Ovaj re omoguæava ve dodav teksta u nekom redu. |
| ---> Ovaj red omoguæava vebanje dodavanja teksta u nekom redu. |
| |
| NAPOMENA: Komande a, i, i A aktiviraju isti Insert mod, jedina |
| razlika je u poziciji od koje æe se tekst ubacivati. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 6.3: DRUGI NAÈIN ZAMENE |
| |
| |
| ** Otkucajte veliko R da biste zamenili vie od jednog znaka. ** |
| |
| 1. Pomerite kursor na prvi sledeæi red oznaèen sa --->. |
| Pomerite kursor na poèetak prvog xxx . |
| |
| 2. Pritisnite R i otkucajte broj koji je red ispod, |
| tako da zameni xxx . |
| |
| 3. Pritisnite <ESC> za izlazak iz Replace moda. |
| Primetite da je ostatak reda ostao nepromenjen. |
| |
| 4. Ponovite korake da biste zamenili drugo xxx. |
| |
| ---> Dodavanje 123 na xxx daje xxx. |
| ---> Dodavanje 123 na 456 daje 579. |
| |
| NAPOMENA: Replace mod je kao Insert mod, s tom razlikom to svaki |
| uneti znak brie veæ postojeæi. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 6.4: KOPIRANJE I LEPLJENJE TEKSTA |
| |
| |
| ** Koristite operator y za kopiranje a p za lepljenje teksta. ** |
| |
| 1. Pomerite kursor na red sa ---> i postavite kursor posle "a)". |
| |
| 2. Aktivirajte Visual mod sa v i pomerite kursor sve do ispred "prvi". |
| |
| 3. Pritisnite y da biste kopirali oznaèeni tekst u interni bafer. |
| |
| 4. Pomerite kursor do kraja sledeæeg reda: j$ |
| |
| 5. Pritisnite p da biste zalepili tekst. Onda otkucajte: a drugi <ESC> . |
| |
| 6. Upotrebite Visual mod da oznaèite " red.", kopirajte sa y , kursor |
| pomerite na kraj sledeæeg reda sa j$ i tamo zalepite tekst sa p . |
| |
| ---> a) ovo je prvi red. |
| b) |
| |
| NAPOMENA: takoðe moete koristiti y kao operator; yw kopira jednu reè. |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 6.5: POSTAVLJANJE OPCIJA |
| |
| |
| ** Postavite opciju tako da traenje i zamena ignoriu velièinu slova ** |
| |
| 1. Potraite reè 'razlika': /razlika <ENTER> |
| Ponovite nekoliko puta pritiskom na n . |
| |
| 2. Aktivirajte opciju 'ic' (Ignore case): :set ic |
| |
| 3. Ponovo potraite reè 'razlika' pritiskom na n |
| Primetite da su sada pronaðeni i RAZLIKA i Razlika. |
| |
| 4. Aktivirajte opcije 'hlsearch' i 'incsearch': :set hls is |
| |
| 5. Ponovo otkucajte komandu traenja i uoèite razlike: /razlika <ENTER> |
| |
| 6. Za deaktiviranje opcije ic kucajte: :set noic |
| |
| NAPOMENA: Za neoznaèavanje pronaðenih izraza otkucajte: :nohlsearch |
| NAPOMENA: Ako elite da ne razlikujete velièinu slova u samo jednoj komandi |
| traenja, dodajte \c u izraz: /razlika\c <ENTER> |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 6 |
| |
| 1. Pritisnite o za otvaranje reda ISPOD kursora i prelazak u Insert mod. |
| Pritisnite O za otvaranje reda IZNAD kursora. |
| |
| 2. Pritisnite a za unos teksta IZA kursora. |
| Pritisnite A za unos teksta na kraju reda. |
| |
| 3. Komanda e pomera kursor na kraj reèi. |
| |
| 4. Operator y kopira tekst, p ga lepi. |
| |
| 5. Kucanje velikog R aktivira Replace mod dok ne pritisnete <ESC> . |
| |
| 6. Kucanje ":set xxx" aktivira opciju "xxx". Neke opcije su: |
| 'ic' 'ignorecase' ne razlikuje velika/mala slova pri traenju |
| 'is' 'incsearch' prikazuje pronaðen tekst dok kucate izraz |
| 'hls' 'hlsearch' oznaèava inverzno sve pronaðene izraze |
| Moete koristite dugo ili kratko ime opcije. |
| |
| 7. Ispred imena opcije stavite "no" da je deaktivirate: :set noic |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 7.1: DOBIJANJE POMOÆI |
| |
| |
| ** Koristite on-line sistem za pomoæ ** |
| |
| Vim ima detaljan on-line sistem za pomoæ. Za poèetak, pokuajte neto |
| od sledeæeg: |
| - pritisnite taster <HELP> (ako ga imate na tastaturi) |
| - pritisnite taster <F1> (ako ga imate na tastaturi) |
| - otkucajte :help <ENTER> |
| |
| Proèitajte tekst u prozoru pomoæi da biste nauèili pomoæ radi. |
| Kucanjem CTRL-W CTRL-W prelazite iz jednog prozora u drugi. |
| Otkucajte :q <ENTER> da zatvorite prozor pomoæi. |
| |
| Pomoæ o praktièno bilo kojoj temi moete dobiti dodavanjem argumenta |
| komandi ":help". Pokuajte ovo (ne zaboravite <ENTER> na kraju): |
| |
| :help w |
| :help c_CTRL-D |
| :help insert-index |
| :help user-manual |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 7.2: PRAVLJENJE STARTNOG SKRIPTA |
| |
| |
| ** Aktivirajte moguænosti editora ** |
| |
| Vim ima mnogo vie moguænosti nego Vi, ali veæina nije automatski |
| aktivirana. Za dodatne moguænosti napravite "vimrc" fajl. |
| |
| 1. Otvorite "vimrc" fajl. Ovo zavisi od vaeg sistema: |
| :e ~/.vimrc za Unix |
| :e $VIM/_vimrc za MS-Windows |
| |
| 2. Onda uèitajte primer sadraja "vimrc" fajla: |
| :r $VIMRUNTIME/vimrc_example.vim |
| |
| 3. Snimite fajl sa: |
| :w |
| |
| Sledeæi put kada pokrenete Vim, bojenje sintakse teksta biæe |
| aktivirano. Sva svoja podeavanja moete dodati u "vimrc" fajl. |
| Za vie informacija otkucajte :help vimrc-intro |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Lekcija 7.3: AUTOMATSKO DOVRAVANJE |
| |
| |
| ** Dovravanje komandne linije sa CTRL-D i <TAB> ** |
| |
| 1. Podesite Vim da ne bude u Vi-kompatibilnom modu: :set nocp |
| |
| 2. Pogledajte koji fajlovi postoje u direktorijumu: :!ls ili :!dir |
| |
| 3. Otkucajte poèetak komande: :e |
| |
| 4. Otkucajte CTRL-D i Vim æe prikazati spisak komandi koje poèinju sa "e". |
| |
| 5. Pritisnite <TAB> i Vim æe dopuniti ime komande u ":edit". |
| |
| 6. Dodajte razmak i poèetak imena postojeæeg fajla: :edit FA |
| |
| 7. Pritisnite <TAB>. Vim æe dopuniti ime fajla (ako je jedinstveno). |
| |
| NAPOMENA: Moguæe je dopuniti mnoge komande. Samo probajte CTRL-D i <TAB>. |
| Naroèito je korisno za :help komande. |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| REZIME lekcije 7 |
| |
| |
| 1. Otkucajte :help ili pritisnite <F1> ili <Help> za pomoæ. |
| |
| 2. Otkucajte :help komanda biste dobili pomoæ za tu komandu. |
| |
| 3. Otkucajte CTRL-W CTRL-W za prelazak u drugi prozor. |
| |
| 4. Otkucajte :q da zatvorite prozor pomoæi. |
| |
| 5. Napravite vimrc startni skript za aktiviranje podeavanja koja |
| vam odgovaraju. |
| |
| 6. Dok kucate neku od : komandi, pritisnite CTRL-D da biste videli moguæe |
| vrednosti. Pritisnite <TAB> da odaberete jednu od njih. |
| |
| |
| |
| |
| |
| |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| Ovim je priruènik zavren. Njegov cilj je bio kratak pregled Vim editora, |
| koliko da omoguæi njegovo relativno jednostavno koriæenje. Priruènik nije |
| potpun, jer Vim ima mnogo vie komandi. Kao sledeæe, proèitajte priruènik: |
| ":help user-manual". |
| |
| Za dalje èitanje i uèenje, preporuèujemo knjigu: |
| Vim - Vi Improved - by Steve Oualline |
| Izdavaè: New Riders |
| Prva knjiga potpuno posveæena Vim-u. Naroèito korisna za poèetnike. |
| Ima mnotvo primera i slika. |
| Vidite http://iccf-holland.org/click5.html |
| |
| Sledeæa knjiga je starija i vie govori o Vi-u nego o Vim-u, ali je takoðe |
| preporuèujemo: |
| Learning the Vi Editor - by Linda Lamb |
| Izdavaè: O'Reilly & Associates Inc. |
| Dobra knjiga iz koje moete saznati skoro sve to moete raditi u Vi-ju. |
| esto izdanje ima i informacija o Vim-u. |
| |
| Ovaj priruènik su napisali: Michael C. Pierce i Robert K. Ware, |
| Colorado School of Mines koristeæi ideje Charlesa Smitha, |
| Colorado State University. E-mail: bware@mines.colorado.edu. |
| |
| Prilagoðavanje za Vim uradio je Bram Moolenaar. |
| |
| Prevod na srpski: Ivan Nejgebauer <ian@uns.ac.rs> |
| Verzija 1.0, maj/juni 2014. |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |