**Vim** on tekstiredaktor, mille andis esmakordselt välja Bram Moolenaar 1991. aastal Amiga arvutitele. "Vim" on esitähtlühend nimest "Vi IMproved", sest Vim loodi laiendatud versioonina vi tekstiredaktorist koos lisavõimalustega, mis on mõeldud olema abiks programmide lähtekoodi redigeerimisel.

Kuigi Vim on mitmeplatvormiline, on see populaarseim UNIXi-laadsetes operatsioonisüsteemides.

Vim on vaba ja avatud lähtekoodiga tarkvara, kuna see on välja antud GNU üldise avaliku litsentsiga ühilduva tarkvaralitsentsi all. Programmi litsents sisaldab mõningaid annetusvara tingimusi.

Liides
------

Vim terminaliemulaatoris
Samuti nagu vi liides, ei põhine ka Vimi liides menüüdel või ikoonidel, vaid tekstipõhisesse kasutajaliidesesse sisestatud käskudel; selle graafiline liides, gVim, lisab menüüd ja tööriistaribad kõige sagedamini kasutatud käskudele, kuid täielik funktsionaalsus on siiski kättesaadav läbi käsurea.

Tihti edeneb Vimi õppimine alguses aeglaselt, kuid kui põhimõtted on selged, siis kulgeb õpe kiiresti. Et õppimist hõlbustada, sisaldab Vim algajatele mõeldud õpetust. Algelisi ja keerukamaid toiminguid seletab Vim Users' Manual, mida saab lugeda kas läbi Vimi enda või internetist.

Käskude ja võimaluste päringuteks sisaldab Vim abivahendit, millele saab ligi :help käsuga.

Redigeerimine režiimides
------------------------

Olles vi järeltulija, on Vim režiimne – disainivalik, mis kipub uutes kasutajates segadust põhjustama. Selles mõttes on kõik tekstiredigeerimisprogrammid režiimsed, et need eristavad sisestus- ja käsusisendeid, kuid enamikus saavutatakse see sootuks teistviisi: käsud menüüdes (hiire või klaviatuuriga juhitavad), metaklahvid (samaaegne mitme klahvi kasutamine, tavaliselt koos Control (CTRL)- või Alt (ALT)-klahviga) ning osutusseadme sisend. Vim, sammudes vi radades, on ainulaadne, kuna tervet klaviatuuri lülitatakse nende režiimide vahel. Tänu sellele on võimalik kõiki redigeerimisfunktsioone sooritada kasutamata osutusseadet või menüüsid, ning vähima arvu metaklahvidega. Pimesüsteemis kirjutajatele ja hiire suhtes vastumeelsetele võib see jõudluses ja tõhususes olla suureks eeliseks.

Kohandamine
-----------

Osa Vimi võimsusest tuleneb laialdastest kohandamisvõimalustest. Põhiliidest saab juhtida paljude saadaolevate valikute abil, ning kasutaja saab määratleda isikupäraseid klahvijärjendeid – sageli nimetatakse neid makrodeks – ehk lühendeid, mis automatiseerivad klahvivajutuste järjendeid, või isegi kutsuvad esile sisseehitatud või kasutaja poolt määratletud `<to />` funktsioone.

### Vimscript

On palju laiendusi (pluginaid), mis laiendavad või lisavad Vimi funktsioone. Neid keerukaid skripte kirjutatakse tavaliselt Vimi sisseehitatud skriptimiskeele vimscript abil. Vim toetab skriptimist ka teiste programmeerimiskeeltega, nagu MzScheme, Perl, Python, Ruby, Tcl jt.

### Komplektid

On projekte, mis komplekteerivad keerukaid skripte ja kohandusi, mis on mõeldud tegemaks Vimist spetsialiseerinud töövahendi või muutmaks oluliselt selle käitumisviisi. Näitena võib tuua Creami, mis muudab Vimi käitumise klõpsa-ja-kirjuta laadi redaktorprogrammi sarnaseks, või VimOutliner, mis annab UNIXi-laadsete arvutite kasutajatele mugava liigitusprogrammi.

Võimalused ja vi täiendused
---------------------------

Ühilduvusrežiimis on Vim peaaegu täielikult vi'ga ühilduv, kuid Vim sisaldab vi täiendusi, mis võivad, kuid ei pruugi ühilduvusrežiimis saada olla.

Mõned nendest täiendustest on lõpetamine, võrdlemine, failide sulatamine (tuntud kui vimdiff), sügavuti sisseehitatud abisüsteem, laiendatud regulaaravaldised; skriptimiskeeled (nii oma-, kui ka alternatiivsed skriptimisinterpretaatorid, nagu Perl, Python, Ruby, Tcl, jms), sealhulgas laiendprogrammide toetus; graafiline kasutajaliides (tuntud kui gvim), piiratud integreeritud arenduskeskkonna võimalused, hiire kasutamine (nii graafilise liidesega, kui ka ilma), reapeitmine; GZIP-, BZIP2-, ZIP- ja TAR-vormingus tihendatud või arhiveeritud failide redigeerimine; läbi võrguprotokollide, nagu SSH-, FTP- ja HTTP-failide redigeerimine; seansiolekute säilitamine, õigekirjakontroll, lõhestamine (põikne ja püstne) ja (vahe)kaartides aknad, Unicode'i ja mitme muu märgistiku tugi, süntaksi esiletõstmine, seansiülesed käsud, regulaaravaldistega tekstiotsing ja asendamine, kursori asukohtade ajalugu, mitmetasandiline tegevuste tagasivõtmine ja uuestitegemine ning visuaalne režiim.

Kuigi vi oli algselt saadaval vaid UNIXi operatsioonisüsteemidele, on Vim väga laialdaselt porditav. Programmi versioone on järgmistele süsteemidele: AmigaOS (algne platvorm), UNIX, Linux, BSD, Mac OS ja Mac OS X, Android (pakett Vim Touch), MS-DOS, Microsoft Windows 9x (95/98/Me) ja Windows NT-põhised süsteemid (NT/2000/XP/Server 2003/Vista/Server 2008/7 ja uuemad); IBM OS/390 ja OS/2; lisaks Atari, MiNT, BeOS, MorphOS, OpenVMS, QNX, RISC OS, jpt.

Ajalugu
-------

| Kuupäev | Versioon | Muudatused ja täiendused |
| --- | --- | --- |
| 1988 | 1.0 | Steviel põhinev tekstiredaktor Amigale **Vi IMitation**; ei ole avalikult välja kuulutatud |
| 2. november 1991 | 1.14 | Esimene avalik väljalase Amigale Fred Fishi disketil #591 |
| 1992 | 1.22 | Porditud Unixile. Vim konkureerib nüüd *vi'ga*. **Vimist** sai **Vi IMproved** |
| 12. august 1994 | 3.0 | Mitme akna toetus |
| 29. mai 1996 | 4.0 | Graafiline kasutajaliides |
| 19. veebruar 1998 | 5.0 | Süntaksi esiletõstmine, algeline skriptimine (kasutaja määratletud funktsioonid, käsud, jms) |
| 6. aprill 1998 | 5.1 | Veaparandused, täiustused |
| 27. aprill 1998 | 5.2 | Pikkade ridade toetus, failibrauser, dialoogid, hüpikmenüü, märgistusrežiim, seansside failid, kasutajate määratletud funktsioonid ja käsud, tcl-liides jms |
| 31. august 1998 | 5.3 | Veaparandused jms |
| 25. juuli 1999 | 5.4 | Algeline failide krüpteerimine, täiustused |
| 19. september 1999 | 5.5 | Veaparandused, täiustused |
| 16. jaanuar 2000 | 5.6 | Uued süntaksifailid, veaparandused jms |
| 24. juuni 2000 | 5.7 | *idem* |
| 31. mai 2001 | 5.8 | *idem* |
| 26. september 2001 | 6.0 | Reapeitmine, lisandprogrammid, mitmed keeled jms |
| 24. märts 2002 | 6.1 | Veaparandused |
| 1. juuni 2003 | 6.2 | GTK2, araabia keelte toetus, `:try` käsk, pisivõimalused, veaparandused |
| 7. juuni 2004 | 6.3 | Veaparandused, tõlgete uuendused, märgistamise parandused |
| 15. oktoober 2005 | 6.4 | Veaparandused, Perli, Pythoni ja Ruby toetuse uuendused |
| 7. mai 2006 | 7.0 | Õigekirjakontroll, automaatne koodi lõpetamine, dokumentide kaardid, käesoleva rea ja veeru esiletõstmine, tagasivõtmise harud ja rohkem |
| 12. mai 2007 | 7.1 | Veaparandused, uued süntaksi- ja käitusaja failid, jms |
| 9. august 2008 | 7.2 | Ujukomade toetus skriptides, uuesti tehtud ekraanile joonistamise kood, veaparandused, uued süntaksifailid jms |

(Märkus. Mõned kuupäevad on umbkaudsed, arendusväljalaskeid ei ole loetletud ning mitut pisiväljalaset pole siia loendisse kantud.)

Viited
------

1. ↑  "ICCF Holland – helping children in Uganda". ICCF Holland. Vaadatud 23.10.2007.  
 Bram Moolenaari kommentaarid siin ja paljudes teistes kohtades.
2. ↑  "Linux Journal: 2003 Readers' Choice Awards". 1.11.2003. Vaadatud 24.05.2006.; "Linux Journal: 2004 Readers' Choice Awards". 1.11.2004. Vaadatud 24.05.2006.; "Linux Journal: 2005 Readers' Choice Awards". 28.09.2005. Vaadatud 24.05.2006.
3. ↑  Vim documentation: uganda
4. ↑  Oualline, Steve (aprill 2001). *Vi IMproved (VIM)* (PDF). New Riders Publishers. ISBN 0-7357-1001-5.
5. ↑  Vim manual at Sourceforge.net
6. ↑  :help vim-script-intro
7. ↑  Vim help system (type "`:help`" within vim)
8. ↑  "`:help sys-file-list`"  
"Vim Online: Downloads". Vaadatud 7.01.2007.
9. 1 2 3 4 5 6  Moolenaar, Bram (15.01.2001). "Vim, an open-source text editor". Vaadatud 24.10.2005.
10. ↑  "Official Vim Manual, Version 4 summary". 12.03.2004. Vaadatud 6.08.2008.
11. ↑  "Official Vim Manual, Version 5 summary". 17.04.2004. Vaadatud 6.08.2008.
12. ↑  "Official Vim Manual, Version 6 summary". 12.03.2004. Vaadatud 6.08.2008.
13. ↑  "Official Vim Manual, Version 7 summary". 10.05.2006. Vaadatud 6.08.2008.
14. ↑
15. ↑  Kuupäevad võetud ametlikult Vimi FTP lehelt.

Välislingid
-----------

|  |  |
| --- | --- |
|  | Pildid, videod ja helifailid Commonsis: **Vim** |