diff --git a/runtime/tutor/tutor.hu.utf-8 b/runtime/tutor/tutor.hu.utf-8
new file mode 100644
index 0000000..b64155f
--- /dev/null
+++ b/runtime/tutor/tutor.hu.utf-8
@@ -0,0 +1,823 @@
+===============================================================================
+=    Ü d v ö z ö l j ü k   a   V I M   T u t o r b a n  -    1.5-ös  verzió ===
+===============================================================================
+
+     A Vim egy nagyon hatékony szerkesztő, amelnyek rengeteg utasítása
+     van, túl sok, hogy egy ilyen oktatóban (tutorban), mint az itteni
+     mindet elmagyarázzuk. Ez az oktató arra törekszik, hogy annyit
+     elmagyarázzon, amennyi elég, hogy könnyedén használjuk a Vim-et, az
+     általános célú szövegszerkesztőt.
+
+     A feladatok megoldásához 25-30 perc szükséges attól függően,
+     mennyit töltünk a kisérletezéssel.
+
+     A leckében szereplő utasítások módosítani fogják a szövegek.
+     Készítsen másolatot erről a fájlról, ha gyakorolni akar.
+     (Ha "vimtutor"-ral indította, akkor ez már egy másolat.)
+
+     Fontos megérteni, hogy ez az oktató cselekedve taníttat.
+     Ez azt jelenti, hogy Önnek ajánlott végrehajtania az utasításokat,
+     hogy megfelelően megtanulja azokat. Ha csak olvassa, elfelejti!
+
+     Most bizonyosodjon, meg, hogy a Caps-Lock gombja NINCS lenyomva, és
+     Nyomja meg megfelelő számúszor a   j   gombot, hogy az 1.1-es
+     lecke teljesen a képernyőn legyen!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			1.1.  lecke:  A KURZOR MOZGATÁSA
+
+
+   ** A kurzor mozgatásához nyomja meg a h,j,k,l gombokat az alábbi szerint. **
+	     ^
+	     k		    Tipp:  A h billentyű van balra, és balra mozgat
+       < h	 l >		   A l billentyű van jobbra, és jobbra mozgat
+	     j			   A j billentyű olyan, mint egy lefele nyíl
+	     v
+  1. Mozgassa a kurzort körbe az ablakban, amíg hozzá nem szokik!
+
+  2. Tartsa lenyomva a lefelét (j), akkor ismétlődik!
+---> Most tudja, hogyan mehet a következő leckére.
+
+  3. A lefelé fomb használatával menjen a 1.2. leckére!
+
+Megj: Ha nem biztos benne, mit nyomott meg, nyomja meg az <ESC>-et, hogy
+      normál módba kerüljön, és ismételje meg a parancsot!
+
+Megj: A kurzor gomboknak is működniük kell, de a hjkl használatával
+      sokkal gyorsabban tud, mozogni, ha hozzászokik.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		     1.2.  lecke: BE ÉS KILÉPÉS A VIMBŐL
+
+
+  !! MEGJ: Mielőtt végrehajtja az alábbi lépéseket, olvassa végig a leckét !!
+
+  1. Nyomja meg az  <ESC> gombot (hogy biztosan normál módban legyen).
+
+  2. Írja:			:q! <ENTER>.
+
+---> Ezzel kilép a szerkesztőből a változások MENTÉSE NÉLKÜL.
+     Ha menteni szeretné a változásokat és kilépni, írja:
+				:wq  <ENTER>
+
+  3. Amikor a shell promptot látja, írja be a parancsot, amely ebbe a
+     tutorba hozza:
+     Ez valószínűleg:	vimtutor <ENTER>
+     Normális esetben ezt írná:	vim tutor.hu <ENTER>
+
+---> 'vim' jelenti a vimbe belépést, 'tutor.hu' a fájl, amit szerkeszteni kíván.
+
+  4. Ha megjegyezte a lépéseket és biztos magában, hajtsa végre a lépéseket
+     1-től 3-ig, hogy kilépjen és visszatérjen a szerkesztőbe. Azután
+     menjen az 1.3.  leckére.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		     1.3.  lecke: SZÖVEG SZERKESZTÉSE - TÖRLÉS
+
+
+** Normál módban nyomjon  x-et, hogy a kurzor alatti karaktert törölje. **
+
+  1. Mozgassa a kurzort a ---> kezdetű sorra!
+
+  2. A hibák kijavításához mozgassa a kurzort amíg a törlendő karakter
+     fölé nem ér.
+
+  3. Nyomja meg az  x  gombot, hogy törölje a nemkívánt karaktert.
+
+  4. Ismételje a 2, 3, 4-es lépéseket, hogy kijavítsa a mondatot.
+
+---> ŐŐszi éjjjell izziik aa galaggonya rruuhája.
+
+  5. Ha a sor helyes, ugorjon a 1.4. leckére.
+
+MEGJ: A tanulás során ne memorizálni próbáljon, hanem használat során tanuljon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		     1.4.  lecke: SZÖVEG SZERKESZTÉSE - BESZÚRÁS
+
+
+	 ** Normál módban  i  megnyomásával lehet beilleszteni. **
+
+  1. Az alábbi első ---> kezdetű sorra menjen.
+
+  2. Ahhoz, hogy az elsőt azonossá tegye a másodikkal, mozgassa a kurzort
+     az első karakterre, amely UTÁN szöveget kell beszúrni.
+
+  3. Nyomjon  i-t és írja be a megfelelő szöveget.
+
+  4. Amikor mindent beírt, nyomjon <ESC>-et, hogy Normál módba visszatérjen.
+     Ismételje a 2 és 4 közötti lépéseket, hogy kijavítsa a mondatot.
+
+---> Az átható soól hizik pár ész.
+---> Az itt látható sorból hiányzik pár rész.
+
+  5. Ha már begyakorolta a beszúrást, menjen az alábbi összefoglalóra.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			       1. LECKE ÖSSZEFOGLALÓJA
+
+
+  1. A kurzort vagy a nyilakkal vagy a hjkl gombokkal mozgathatja.
+	 h (balra)	j (le)       k (fel)	    l (jobbra)
+
+  2. A Vimbe (a $ prompttól) így léphet be:  vim FILENAME <ENTER>
+
+  3. A Vimből így léphet ki:  <ESC>   :q!  <ENTER>  a változtatások eldobásával.
+	     vagy így:	      <ESC>   :wq  <ENTER>  a változások mentésével.
+
+  4. A kurzor alatti karakter törlése normál módban:  x
+
+  5. Szöveg beszúrása a kurzor után normál módban:
+	 i     gépelje be a szöveget	<ESC>
+
+MEGJ: Az <ESC> megnyomása normál módba viszi, vagy megszakít egy nem befejezett
+      részben befejezett parancsot.
+
+Most folytassuk a 2. leckével!
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			2.1.  lecke: TÖRLŐ UTASÍTÁSOK
+
+
+	    ** dw  töröl a szó végéig. **
+
+  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy normál módban van!
+
+  2. Mozgassa a kurzort a ---> kezdetű sorra!
+
+  3. Mozgassa a kurzort arra annak a szónak az elejére, amit törölni szeretne.
+     Törölje az állatokat a mondatból.
+
+  4. A szó törléséhez írja:   dw
+
+  MEGJ: Ha rosszul kezdte az utasítást csak nyomjon <ESC> gombot
+        a megszakításához.
+
+---> Pár szó kutya nem uhu illik pingvin a mondatba tehén.
+
+  5. Ismételje a 3 és 4 közötti utasításokat amíg kell és ugorjon a 2.2 leckére!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		      2.2.  lecke: MÉG TÖBB TÖRLŐ UTASÍTÁS
+
+
+	   ** d$ beírásával a sor végéig törölhet. **
+
+  1. Nyomjon <ESC>-et, hogy megbizonyosodjon, hogy normál módban van!
+
+  2. Mozgassa a kurzort a ---> kezdetű sorra!
+
+  3. Mozgassa a kurzort a helyes sor végére (az első . UTÁN)!
+
+  4. d$  begépeléséveltörölje a sor végét!
+
+---> Valaki a sor végét kétszer gépelte be. kétszer gépelte be.
+
+
+  5. Menjen a 2.3. leckére, hogy megértse mi történt!
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		     2.3.  lecke: UTASÍTÁSOKRÓL ÉS OBJEKTUMOKRÓL
+
+
+  A  d  (delete=törlés) utasítás formája a következő:
+
+	 [szám]   d	objektum	   VAGY	     d	 [szám] objektum
+  Ahol:
+    szám - hányszor hajtódjon végre a parancs (elhagyható, alapérték=1).
+    d - a törlés (delete) utasítás.
+    objektum - amin a parancsnak teljesülnie kell (alább listázva).
+
+  Objektumok rövid listája:
+    w - a kurzortól a szó végéig, beleértve a szóközt.
+    e - a kurzortól a szó végéig, NEM beleértve a szóközt.
+    $ - a kurzortól a sor végéig.
+
+MEGJ:  Vállalkozóbbak kedvéért, csupán az objektum begépelésével parancs nélkül
+       a kurzor oda kerül, amit az objektumlista megad.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		2.4.  lecke: EGY KIVÉTEL A  'PARANCSOBJEKTUM' ALÓL
+
+
+	       ** dd beírásával törölheti az egész sort. **
+
+  A teljes sor törlésének gyakorisága miatt a Vi tervezői elhatározták,
+  hogy könnyebb lenne csupán a d-t kétszer megnyomni, hogy egy sort töröljünk.
+
+  1. Mozgassa a kurzort az alábbi kifejezések második sorára!
+  2. dd begépelésével törölje a sort!
+  3. Menjen a 4. (eredetileg 5.) sorra!
+  4. 2dd   (ugyebár szám-utasítás-objektum) begépelésével töröljön két sort!
+
+      1)  Alvó szegek a jéghideg homokban,
+      2)  - kezdi a költő -
+      3)  Plakátmagányban ázó éjjelek.
+      4)  Pingvinek ne féljetek,
+      5)  Távolról egy vaku villant,
+      6)  Égve hagytad a folyosón a villanyt.
+      7)  Ma ontják véremet.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			 2.5.  lecke: A VISSZAVONÁS (UNDO) PARANCS
+
+
+** u gépelésével visszavonható az utolsó parancs, U az egész sort helyreállítja. **
+
+  1. Menjünk az alábbi ---> kezdetű sor első hibájára!
+  2. x  lenyomásával törölje az első felesleges karaktert!
+  3. u megnyomásával vonja vissza az utolsónak végrehajtott utasítást!
+  4. Másodjára javítson ki minden hibát a sorben az x utasítással!
+  5. Most nagy  U  -val állítsa vissza a sor eredeti állapotát!
+  6. Nyomja meg az u gombot párszor, hogy az U és sz előző utasításokat
+     visszaállítsa!
+  7. CTRL-R (CTRL gomb lenyomása mellett üssön R-t) párszor csinálja újra a
+     visszavont parancsokat (redo)!
+
+---> Javíítsd a hhibákaat ebbben a sooorban majd állítsa visszaaa az eredetit.
+
+  8. Ezek nagyon hasznos parancsok. Most ugarjon a 2. lecke összefoglalójára.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			       2. LECKE ÖSSZEFOGLALÓJA
+
+
+  1. Törlés a kurzortól a szó végéig:    dw
+
+  2. Törlés a kurzortól a szó végéig:    d$
+
+  3. Egész sor törlése:    dd
+
+  4. Egy utasítás alakja normál módban:
+
+       [szám]   utasítás   objektum   VAGY   utasítás	[szám] objektum
+     ahol:
+       szám - hányszor ismételjük a parancsot
+       utasítás - mit tegyünk, pl. d  a törléskor
+       objektum - mire hasson az utasítás, például w (szó=word),
+		$ (a sor végéig), stb.
+
+  5. Az előző tett visszavonása (undo):	     u	 (kis u)
+     A sor összes változásának visszavonása: U	 (nagy U)
+     Visszavonások visszavonása:	     CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			 3.1.  lecke: A PUT PARANCS
+
+
+  ** p  leütésével az utolsónak töröltet a kurzor után illeszhetjük. **
+
+  1. Mozgassuk a kurzort az alábbi sorok első sorára.
+
+  2. dd leütésével töröljük a sort és eltérolódik a Vim pufferében.
+
+  3. Mozgassuk a kurzort AFÖLÉ a sor fölé, ahová mozgatni szeretnénk a
+     törölt sort.
+
+  4. Normál módban írjunk  p   betűt a törölt sor beillesztéséhez.
+
+  5. Folytassuk a 2-4. utasításokkal hogy a helyes sorrendet kapjuk.
+
+     d) Can you learn too?
+     b) Violets are blue,
+     c) Intelligence is learned,
+     a) Roses are red,
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		       3.2.  lecke: A REPLACE PARANCS
+
+
+** r  és  a karakterek leütésével a kurzor alatti karaktert megváltoztatjuk. **
+
+  1. Mozgassuk a kurzort az első ---> kezdetű sorra!
+
+  2. Mozgassuk a kurzort az első hiba fölé!
+
+  3. r	majd a kívánt karakter leütésével változtassuk meg a hibásat!
+
+  4. A 2. és 3. lépésekkel javítsuk az összes hibát!
+
+--->  Whan this lime was tuoed in, someone presswd some wrojg keys!
+--->  When this line was typed in, someone pressed some wrong keys!
+
+  5. Menjünk a 3.2. leckére!
+
+MEGJ: Emlékezzen, hogy nem memorizálással, hanem gyakorlással tanuljon.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			3.3.  lecke: A CHANGE PARANCS
+
+
+	   ** A szó egy részének megváltoztatásához írjuk:  cw . **
+
+  1. Mozgassuk a kurzort az első ---> kezdetű sorra!
+
+  2. Vigye a kurzort a Ezen szó z betűje fölé!
+
+  3. cw és a helyes szórész (itt 'bben') beírásával javítsa a szót!
+
+  4. <ESC> lenyomása után a következő hibára ugorjon (az első cserélendő
+     karakterre)!
+
+  5. A 3. és 4. lépések ismétlésével az első mondatot tegye a másodikkal
+     azonossá!
+
+---> Ezen a sorrrrr pár szóra meg kell változzanak a change utaskíréső.
+---> Ebben a sorban pár szót meg kell változtatni a change utasítással.
+
+Vegyük észre, hogy a  cw  nem csak a szót írja át, hanem beszúró
+(insert) módba vált.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		       3.4.  lecke: TÖBBFÉLE VÁLTOZTATÁS c-VEL
+
+
+ ** A c utasítás használható ugyanazokkal az objektumokkal mint a törlés **
+
+  1. A change utasítás a törléssel azonosan viselkedik.  A forma:
+
+       [szám]   c   objektum	   OR	    c	[szám]   objektum
+
+  2. Az objektumok is azonosak, pl.   w (szó), $ (sorvég), stb.
+
+  3. Mozgassuk a kurzort az első ---> kezdetű sorra!
+
+  4. Menjünk az első hibára!
+
+  5. c$ begépelésével a sorvégeket tegyük azonossá és nyomjunk <ESC>-et!
+
+---> Ennek a sornak a vége kiigazításra szorul, hogy megegyezzen a másodikkal.
+---> Ennek a sornak a vége a c$ paranccsal változtatható meg.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			       3. LECKE ÖSSZEFOGLALÓJA
+
+
+  1. A már törölt sort beillesztéséhez nyomjunk p-t. Ez a törölt szöveget
+     a kurzor UTÁN helyezi (ha sor került törlésre, a kurzor allatti sorba).
+
+  2. A kurzor alatti karakter átírásához az r-et és azt a karaktert
+     nyomjuk, amellyel az eredetit felül szeretnénk írni.
+
+  3. A változtatás (c) utasítás a karaktertől az objektum végéig
+     változtatja meg az objektumot. Például a cw a kurzortól a szó végéig,
+     a c$ a sor végéig.
+
+  4. A változtatás formátuma:
+
+	 [szám]   c	objektum	VAGY	c   [szám]   objektum
+
+Ugorjunk a következő leckére!
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		     4.1.  lecke: HELY ÉS FÁJLÁLLAPOT
+
+
+ ** CTRL-g megnyomásával megnézhetjük a helyünket a fájlban és a fájl állapotát.
+     SHIFT-G leütésével a fájl adott sorára ugorhatunk. **
+
+  Megj: Olvassuk el az egész leckét a lépések végrehajtása előtt!!
+
+  1. Tartsuk nyomva a Ctrl gombot és nyomjunk  g-t.  Az állapotsor
+     megjelenik a lap alján a fájlnévvel és az aktuális sor sorszámával.
+     Jegyezzük meg a sorszámot a 3. lépéshez!
+
+  2. Nyomjunk Shift-G-t a lap aljára ugráshoz!
+
+  3. Üssük be az eredeti sor számát, majd üssünk shift-G-t! Ezzel
+     visszajutunk az eredeti sorra ahol Ctrl-g-t nyomtunk.
+     (A beírt szám NEM fog megjelenni a képernyőn.)
+
+  4. Ha megjegyezte a feladatot, hajtsa végre az 1-3. lépéseket!
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			4.2.  lecke: A SEARCH PARANCS
+
+
+  ** / majd a kívánt kifejezés beírásával kereshetjük meg a kifejezést. **
+
+  1. Normál módban üssünk  /  karaktert!  Ez és a kurzor megjelenik
+     a képernyő alján, ahogy a : utasítás is.
+
+  2. Írjuk be: 'hiibaa' <ENTER>!  Ez az a szó amit keresünk.
+
+  3. A kifejezés újabb kereséséhez üssük le egyszerűen:  n .
+     A kifejezés ellenkező irányban történő kereséséhez ezt üssük be: Shift-N .
+
+  4. Ha visszafelé szeretne keresni, akkor ? kell a ! helyett.
+
+---> "hiibaa" nem a helyes módja a hiba leírásának; a hiibaa egy hiba.
+
+Megj: Ha a keresés eléri a fájl végét, akkor az elején kezdi.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		   4.3.  lecke: ZÁRÓJELEK PÁRJÁNAK KERESÉSE
+
+
+	   ** % leütésével megtaláljuk a ),], vagy }  párját. **
+
+  1. Helyezze a kurzort valamelyik (, [, vagy { zárójelre a ---> kezdetű
+     sorban!
+
+  2. Üssön  %  karaktert!
+
+  3. A kurzor a zárójel párjára fog ugrani.
+
+  4. % leütésével visszaugrik az eredeti zárójelre.
+
+---> Ez ( egy tesztsor (-ekkel, [-ekkel ] és {-ekkel } a sorban. ))
+
+Megj: Ez nagyon hasznos, ha olyan programot debugolunk, amelyben a
+      zárójelek nem párosak!
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		      4.4.  lecke: A HIBÁK KIJAVÍTÁSÁNAK EGY MÓDJA
+
+
+    ** :s/új/régi/g begépelésével az 'új'-ra cseréljük a 'régi'-t. **
+
+  1. Menjünk a ---> kezdetű sorra!
+
+  2. Írjuk be:  :s/eggy/egy <ENTER> .  Ekkor csak az első változik meg a
+     sorban.
+
+  3. Most ezt írjuk:	 :s/eggy/egg/g	   amely globálisan helyettesít
+     a sorban.
+     Ez a sorban minden előfordulást helyettesít.
+
+---> eggy hegy meggy, szembe jön eggy másik heggy.
+
+  4. Két sor között a karaktersor minden előfordulásának helyettesítése:
+     :#,#s/régi/új/g    ahol #,# a két sor sorszáma.
+     :%s/régi/új/g      a fájlbeli összes előfordulás helyettesítése.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			       4. LECKE ÖSSZEFOGLALÓJA
+
+
+  1. Ctrl-g  kiírja az kurzor helyét a fájlban és a fájl állapotát.
+     Shift-G a fájl végére megy, gg az elejére. Egy szám után
+     Shift-G  az adott számú sorra ugrik.
+
+  2. /	után egy kifejezés ELŐREFELE keresi a kifejezést.
+  2. ?	után egy kifejezés VISSZAFELE keresi a kifejezést.
+     Egy keresés után az  n  a következő előfordulást keresi azonos irányban
+     Shift-N  az ellenkező irányban keres.
+
+  3. %	begépelésével, ha  (,),[,],{, vagy } karakteren vagyunk a zárójel
+     párjára ugrik.
+
+  4. az első régi helyettesítése újjal a sorban    :s/régi/új
+     az összes régi helyettesítése újjal a sorban  :s/régi/új/g
+     két sor közötti kifejezésekre		   :#,#s/régi/új/g
+     # helyén az aktuális sor (.) és az utolsó ($) is állhat :.,$/régi/új/g
+     A fájlbeli összes előfordulás helyettesítése  :%s/régi/új/g
+     Mindenkori megerősítésre vár 'c' hatására	   :%s/régi/új/gc
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		5.1.  lecke: KÜLSŐ PARANCS VÉGREHAJTÁSA
+
+
+   ** :!  után külső parancsot írva végrehajtódik a parancs. **
+
+  1. Írjuk be az ismerős : parancsot, hogy a kurzort a  képernyő aljára
+     helyezzük. Ez lehetővé teszi egy parancs beírását.
+
+  2. ! (felkiáltójel) beírásával tegyük lehetővé külső héj (shell)-parancs
+     végrehajtását.
+
+  3. Írjunk például ls parancsot a ! után majd üssünk <ENTER>-t.  Ez ki
+     fogja listázni a könyvtárunkat ugyanúgy, mintha a shell promptnál
+     lennénk.  Vagy írja ezt  :!dir  ha az ls nem működik.
+
+Megj:  Ilymódon bármely külső utasítás végrehajtható.
+
+Megj:  Minden  :  parancs után <ENTER>-t kell ütni.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		      5.2.  lecke: BŐVEBBEN A FÁJLOK ÍRÁSÁRÓL
+
+
+     ** A fájlok változásait így írhatjuk ki  :w FÁJLNÉV. **
+
+  1. :!dir  vagy  :!ls  beírásával listázzuk a könyvtárunkat!
+     Ön már tudja, hogy <ENTER>-t kell ütnie utána.
+
+  2. Válasszon egy fájlnevet, amely még nem létezik pl. TESZT!
+
+  3. Írja:	:w TESZT   (ahol TESZT a választott fájlnév)!
+
+  4. Ez elmenti a teljes fájlt (a Vim Tutort) TESZT néven.
+     Ellenőrzésképp írjuk ismét    :!dir   hogy lássuk a könyvtárat!
+     (Felfelé gombbal : után az előző utasítások visszahozhatóak.)
+
+Megj: Ha Ön kilépne a Vimből és és visszatérne a TESZT fájlnévvel, akkor a
+      fájl a tutor mentéskori pontos másolata lenne.
+
+  5. Távolítsa el a fájlt  (MS-DOS):	:!del TESZT
+			vagy (Unix):	:!rm TESZT
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		    5.3.  lecke: EGY KIVÁLASZTOTT RÉSZ KIÍRÁSA
+
+
+	** A fájl egy részének kiírásához írja :#,# w FÁJLNÉV **
+
+  1. :!dir  vagy :!ls  beírásával listázza a könyvtárat, és válasszon egy
+     megfelelő fájlnevet, pl. TESZT.
+
+  2. Mozgassa a kurzort ennek az oldalnak a tetejére, és nyomjon
+     Ctrl-g-t, hogy megtudja a sorszámot.  JEGYEZZE MEG A SZÁMOT!
+
+  3. Most menjen a lap aljára, és üsse be ismét: Ctrl-g.  EZT A SZÁMOT
+     IS JEGYEZZE MEG!
+
+  4. Ha csak ezt a részét szeretné menteni a fájlnak, írja   :#,# w TESZT
+     ahol #,# a két sorszám, amit megjegyzett, TESZT az Ön fájlneve.
+
+  5. Ismét nézze meg, hogy a fájl ott van (:!dir) de NE törölje.
+
+  6. Vimben létezik egy másik lehetőség: nyomja meg a Shift-V gombpárt
+     az első menteni kívánt soron, majd menjen le az utolsóra, ezután
+     írja :w TESZT2   Ekkor a TESZT2 fájlba kerül a kijelölt rész.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		   5.4.  lecke: RETRIEVING AND MERGING FILES
+
+
+       ** Egy fájl tartalmának beillesztéséhez írja   :r FÁJLNÉV **
+
+  1. :!dir beírásával nézze meg, hogy az Ön TESZT fájlja létezik még.
+
+  2. Helyezze a kurzort ennek az oldalnak a tetejére.
+
+MEGJ:  A 3. lépés után az 5.3. leckét fogja látni. Azután LEFELÉ indulva
+       keresse meg ismét ezt a leckét.
+
+  3. Most szúrja be a TESZT nevű fájlt a   :r TESZT   paranccsal, ahol
+     TESZT az Ön fájljénak a neve.
+
+MEGJ:  A fájl, amit beillesztett a kurzora alatt helyezkedik el.
+
+  4. Hogy ellenőrizzük, hogy a fájlt tényleg beillsztettük, menjen
+     vissza, és nézze meg, hogy kétszer szerepel az 5.3. lecke! Az eredeti
+     mellett a fájlból bemásolt is ott van.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			       5. LECKE ÖSSZEFOGLALÓJA
+
+
+  1.  :!parancs végrehajt egy külső utasítást.
+
+      Pár hasznos példa:
+	 (MS-DOS)	  (Unix)
+	  :!dir		   :!ls		   -  könyvtárlista kiírása.
+	  :!del FÁJLNÉV    :!rm FÁJLNÉV    -  FÁJLNÉV nevű fájl törlése.
+
+  2.  :w FÁJLNÉV  kiírja a jelenlegi Vim-fájlt a lemezre FÁJNÉV néven.
+
+  3.  :#,#w FÁJLNÉV  kiírja a két sorszám (#) közötti sorokat FÁJLNÉV-be
+      Másik lehetőség, hogy a kezdősornál Ctrl-v-t nyom lemegy az utolsó
+      sorra, majd ezt üti be  :w FÁJLNÉV
+
+  4.  :r FÁJLNÉV  beolvassa a FÁJLNÉV fájlt és behelyezi a jelenlegi fájlba
+      a kurzorpozició utáni sorba.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			 6.1.  lecke: A OPEN PARANCS
+
+
+** o  beírásával nyithat egy új sort a kurzor alatt és válthat beszúró módba **
+
+  1. Mozgassuk a kurzort a ---> kezdetű sorra.
+
+  2. o (kicsi)  beírásával nyisson egy sort a kurzor ALATT! Ekkor
+     automatikusan beszúró (insert) módba kerül.
+
+  3. Másolja le a  ---> jelű sort és <ESC> megnyomásával lépjen ki
+     a beszúró módból.
+
+---> Az o lenyomása után a kurzor a következő sor elején áll beszúró módban.
+
+  4. A kurzor FELETTI for megnyitásához egyzserűen a nagy O betűt írjon
+kicsi helyett. Próbálja ki a következő soron!
+Nyisson egy új sort efelett Shift-O megnyomásával, mialatt a kurzor
+ezen a soron áll.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			6.2.  lecke: AZ APPEND PARANCS
+
+
+	 ** a  lenyomásával a kuror UTÁN szúrhatunk szöveget. **
+
+  1. Mozgassuk a kurzort a következő ---> kezdetű sor végére úgy,
+     hogy normál módban  $  ír be.
+
+  2. a  (kicsi) leütésével szöveget szúrhat be AMöGÉ a karakter mögé,
+     amelyen a kurzor áll.
+     (A nagy  A  az egész sor végére írja a szöveget.)
+
+Megj: A Vimben a sor legvégére is lehet állni, azonba ez elődjében
+      a Vi-ban nem lehetséges, ezért abban az a nélkül elég körülményes
+      a sor végéhez szöveget írni.
+
+  3. Egészítse ki az első sort. Vegye észre, hogy az a utasítás (append)
+     teljesen egyezik az i-vel (insert) csupán a beszúrt szöveg helye
+     különbözik.
+
+---> Ez a sor lehetővé teszi Önnek, hogy gyakorolja
+---> Ez a sor lehetővé teszi Önnek, hogy gyakorolja a sor végére beillesztést.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		    6.3.  lecke: AZ ÁTÍRÁS MÁSIK VÁLTOZATA
+
+
+      ** Nagy R  beírásával írhat felül több mint egy karaktert. **
+
+  1. Mozgassuk a kurzort az első ---> kezdetű sorra!
+
+  2. Place the cursor at the beginning of the first word that is different
+     from the second line marked ---> (the word 'last').
+
+  3. Now type  R  and replace the remainder of the text on the first line by
+     typing over the old text to make the first line the same as the second.
+
+---> To make the first line the same as the last on this page use the keys.
+---> To make the first line the same as the second, type R and the new text.
+
+  4. Note that when you press <ESC> to exit, any unaltered text remains.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			    6.4.  lecke: BEÁLLÍTÁSOK
+
+** Állítsuk be, hogy a keresés és a helyettesítés ne függjön kis/NAGYbetűktől **
+
+  1. Keressük meg az 'ignore'-t az beírva:
+     /ignore
+     Ezt ismételjük többször az n billentyűvel
+
+  2. Állítsuk be az 'ic' (Ignore case) lehetőséget így:
+     :set ic
+
+  3. Most keressünk ismét az 'ignore'-ra n-nel
+     Ismételjük meg többször a keresést: n
+
+  4. Állítsuk be a 'hlsearch' és 'incsearch' lehetőségeket:
+     :set hls is
+
+  5. Most ismét írjuk be a keresőparancsot, és lássuk mi történik:
+     /ignore
+
+  6. A kiemelést szüntessük meg alábbi utasítások egyikével:
+     :set nohls     vagy	 :nohlsearch
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+			       6. LECKE ÖSSZEFOGLALÓJA
+
+
+  1. Typing  o	opens a line BELOW the cursor and places the cursor on the open
+     line in Insert mode.
+     Typing a capital  O  opens the line ABOVE the line the cursor is on.
+
+  2. Type an  a  to insert text AFTER the character the cursor is on.
+     Typing a capital  A  automatically appends text to the end of the line.
+
+  3. Typing a capital  R  enters Replace mode until  <ESC>  is pressed to exit.
+
+  4. Typing ":set xxx" sets the option "xxx"
+
+
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		       7. lecke: ON-LINE HELP PARANCSOK
+
+
+		    ** Az online súgórendszer használata **
+
+  A Vim részletes súgóval rendelkezik.  Induláshoz a következők egyikét
+  tegye:
+	- nyomja meg a <HELP> gombot (ha van ilyen)
+	- nyomja meg az <F1> gombot (ha van ilyen)
+	- írja be:   :help <ENTER>
+
+  :q <ENTER>   beírásával zárhatja be a súgóablakot.
+
+  Majdnem minden témakörről találhat súgót, argumentum megadásával
+  ":help" utasítás .  Próbálja az alábbiakat ki (<ENTER>-t ne felejtsük):
+
+	:help w
+	:help c_<T
+	:help insert-index
+	:help user-manual
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		       8. lecke: INDÍTÓSZKRIPT ÍRÁSA
+
+		     ** A Vim lehetőségeinek beállítása **
+
+  A Vim rengeteg lehetőséggel rendelkezik a Vi-hoz képest, de a legtöbb
+  alapból elérhetetlen. Ahhoz, hogy alapból több lehetőségünk legyen készítenünk
+  kell egy "vimrc" fájlt.
+
+  1. Kezdjük el szerkeszteni a "vimrc" fájlt, ennek módja:
+	:edit ~/.vimrc			Unixon, Linuxon
+	:edit $VIM/_vimrc		MS-Windowson
+
+  2. Most szúrjuk be a példa "vimrc" fájl szövegét:
+
+	:read $VIMRUNTIME/vimrc_example.vim
+
+  3. Írjuk ki a fájlt:
+
+	:write
+
+  Legközelebb a Vim szintaxiskiemeléssel indul.
+  Hozzáadhatja kedvenc beállításait ehhez a "vimrc" fájlhoz.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+  Itt végződik a Vim oktató, melynek a szándéka egy rövid áttekintés a
+  Vimről, amely elég ahhoz, hogy elég könnyedén kezeljük a szerkesztőt.
+  Távol van a teljességtől, mivel a Vimnek számtalan további utasítása
+  van. Ezután a felhasználói kézikönyvet érdemes elolvasni az angolul
+  tudóknak: ":help user-manual". (egyelőre nem tud magyarul)
+
+  További magyar olvasnivalók érhetőek el az alábbi oldalról.
+  http://ubuntu.hu/index.php?title=Vim
+
+  For further reading and studying, this book is recommended:
+	Vim - Vi Improved - by Steve Oualline
+	Publisher: New Riders
+  The first book completely dedicated to Vim.  Especially useful for beginners.
+  There are many examples and pictures.
+  See http://iccf-holland.org/click5.html
+
+  This book is older and more about Vi than Vim, but also recommended:
+	Learning the Vi Editor - by Linda Lamb
+	Publisher: O'Reilly & Associates Inc.
+  It is a good book to get to know almost anything you want to do with Vi.
+  The sixth edition also includes information on Vim.
+
+  This tutorial was written by Michael C. Pierce and Robert K. Ware,
+  Colorado School of Mines using ideas supplied by Charles Smith,
+  Colorado State University.  E-mail: bware@mines.colorado.edu.
+
+  Modified for Vim by Bram Moolenaar.
