Vim

**Vim** (**[[Vi]] IMproved**) on Bram Moolenaarin luoma Vi-ohjelmaan perustuva avoimen lähdekoodin terminaalipohjainen tekstieditori, joka toimii monissa käyttöjärjestelmissä. Monet ohjelmoijat käyttävät Vimiä. Siitä on myös saatavilla graafisella käyttöliittymällä varustettuja versioita, joissa on muun muassa valikot ja tuki hiirelle. Vim-editorista on haarautunut NeoVim, joka tukee uutena ominaisuutena muun muassa Lua-lisäosia.

Vimin käyttö eroaa huomattavasti useimmista muista editoreista, esimerkiksi Emacsista, koska Vimin käyttö perustuu eri toimintatiloihin. Keskeinen idea on, ettei kumpaakaan kättä tarvitse siirtää näppäimistöltä (esimerkiksi hiirelle) minkään toiminnon, kuten tallentamisen, ajaksi.

Vim on hyväntekeväisyysohjelma jonka käyttäjiä kehotetaan tekemään lahjoitus esimerkiksi Ugandan orvoille. Vim on vapaa ohjelmisto.

## Toimintaperiaate ja käyttö

Vimissä on kolme tilaa: komentotila, kirjoitustila sekä tekstinvalintatila (visual mode).

Komentotila on perustila, jossa ollaan kun Vim käynnistetään. Vim tulkitsee kaiken komentotilassa kirjoitetun tekstin komennoiksi. Kaikista tiloista pääsee takaisin komentotilaan painamalla näppäintä `Esc`.

Kirjoitustilaan pääsee painamalla esimerkiksi näppäintä `i` komentotilassa. Tässä tilassa Vim lisää kaiken kirjoitetun tekstin muokattavaan tiedostoon.

Tekstinvalintatilaan pääsee painamalla näppäintä `v` komentotilassa. Kaikki kirjoitettu teksti tulkitaan komennoiksi ja kursoria liikuttamalla valitaan tekstiä.

Vimin voi sulkea tallentamatta muutoksia komennolla `:q!`.

Vimin mukana tulee `vimtutor` ohjelma, joka opettaa käyttäjälle interaktiivisesti Vim-tekstieditorin käytön perusteet.

## Ominaisuuksia

* Muutosten kumoaminen ja kumottujen muutosten palautus.
* Mahdollisuus muokata tekstiä vasemmalta oikealle tai oikealta vasemmalle.
* Tekstin visuaalinen muotoilu (visual mode), eli ”tekstipohjainen graafinen muotoilu”. Tekstiä voidaan muun muassa mustata hiirellä ja vaikkapa tuhota, siirtää tai kopioida.
* Makrojen tallentaminen, jonka avulla voidaan tallentaa muokkauksia ja ajaa niitä uudelleen toistuvien tehtävien suorittamiseen.
* Vim voidaan jakaa useisiin ruutuihin; käyttäjä voi tutkia useita tiedostoja tai saman tiedon eri kohtia samanaikaisesti.
* Vimissä on sisäinen komentosarjakieli helpottamaan lisätoimintojen tekoa.
* Hakutoiminto, jolla voidaan hakea merkkijonoja tekstitiedostosta.
* Syntaksin korostus, joka on ohjelmoinnissa lähestulkoon välttämättömyys tekstin selkeyden kannalta. Mukana tulee yli 200 syntaksitiedostoa eri kielille ja syntaksitiedostoja voi myös luoda itse, tai ladata niitä kolmannen osapuolen sivustoilta.
* Vimissä on integrointituki Perlille, TCL:lle ja Pythonille ja se voidaan myös asettaa toimimaan OLE-palveluna Windowsissa.

### Esimerkkejä Vimin komennoista

* `*` Etsi kursorin alla olevaa merkkijonoa tiedostossa eteenpäin
* `%` Siirry kursorin alla olevan sulkumerkin vastakappaleen kohdalle
* `.` Toista viimeisin komento
* `yy` Kopioi kursorin alla oleva rivi
* `3yy` Kopioi kursorin alla oleva rivi ja kaksi seuraavaa riviä

## Historiaa

Bram Moolenaar aloitti Vimin kehittämisen vuonna 1988. Tämän jälkeen ohjelmaan on lisätty lukuisia ominaisuuksia, joista monet liittyvät tietokoneohjelmien lähdekoodin muokkaukseen. Taustansa vuoksi Vim on suosittu erityisesti Unix-käyttäjien ja ohjelmoijien parissa.

Vuonna 1988 Moolenaarilla oli Amiga-tietokone, johon hän etsi tekstieditoria. Hän oli tottunut käyttämään Vitä, mutta sitä ei ollut saatavilla Amigalle. Moolenaar otti käyttöönsä parhaan löytämänsä Vi-kloonin ja alkoi parannella sitä.

Aluksi tavoitteena oli pystyä tekemään kaikki sama, mitä Vi-editorilla pystyi tekemään. Lopulta Moolenaar saavutti tavoitteensa ja alkoi lisätä vähitellen uusia ominaisuuksia, kuten monitasokumous (multi-level undo). Hän julkaisi ensimmäisen version Vimistä 2. marraskuuta 1991. Nimi tuli alun perin sanoista *Vi IMitation*. Muutamat henkilöt edistivät projektia sovittamalla Vimin muun muassa Unixille ja DOSille.

Ajan myötä Vimiin kertyi yhä enemmän ominaisuuksia. Moolenaar muutti Vimin lähdesanoja, jolloin syntyi *Vi IMproved*. Pian alkuperäisestä koodista ei ollut paljoa jäljellä. Tässä vaiheessa Moolenaar piti Vimiä vielä omana lelunaan ja jakoi sitä satunnaisesti ihmisille, jotka tarvitsivat sen kaltaista ohjelmaa.

Myöhemmin Moolenaar laittoi Vimin yleiseen jakoon ja siitä kehittyi vähitellen yksi suosituimmista tekstieditoreista. Vim voitti muun muassa Linux Journal -lehden suosituimman editorin palkinnon lukijaäänestyksessä vuosina 2001–2005.

Moolenaar kuoli 3. elokuuta 2023.

### Vimin historia pähkinänkuoressa

* 1.14: ensimmäinen versio julkaistaan (1991)
* 1.22: sovitus Unixille (1992)
* 3.0: tuki useille ikkunoille ja puskureille (1994)
* 4.0: graafinen käyttöliittymä (1996)
* 5.0: syntaksin korostus (1998)
* 6.0: liitännäiset, laskostus ja pystyjako (2001)
* 7.0: oikeinkirjoituksen tarkistus, välilehdet (2006)

## Lähteet

## Aiheesta muualla
* Virallinen sivu 
* Vimin ohjeet 
* Vim luojansa silmin 
* Esimerkkejä käytöstä 
* Vim kuudella kilotavulla selitettynä
* Vimin peruskäyttö Linux.fissä