Vim

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.
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 codice_1 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.