vi
vi (ex-tekstinmuokkauskielen komennosta visual
) on Unix-käyttöjärjestelmissä suosittu tekstipohjaisella näyttöpäätteellä tai pääte-emulaattorilla käytettäväksi tarkoitettu tekstieditorin tapaan toimiva visualisointityökalu ex-tekstinmuokkauskielelle. Ohjelman ensimmäisen version kehitti Bill Joy vuonna 1976 BSD:lle.[1][2] Joy kehitti aluksi ex-tekstinmuokkauskielen ed:in pohjalta ja vi:n tämän käyttöliittymäksi.[3]
Vi | |
---|---|
vi muokkaamassa väliaikaista tyhjää tiedostoa. Tilde-merkit kuvaavat tiedostossa olemattomia rivejä. |
|
Luoja | Bill Joy |
Tiedot | |
Ohjelmistotyyppi | tekstieditori |
Alusta | alustariippumaton |
Lisenssi | BSD-lisenssi |
Nykyisin on käytössä useita vi-toteutuksia, joista yleisimpiä ovat nvi ("new vi") ja vim ("vi improved"). Vi on osaavissa käsissä erittäin tehokas tekstieditori. Vi:n ja Emacsin välillä on käyty nk. Editorisotaa.
vi:n toiminta perustuu rivieditorien ed ja ex tavoin toimintatiloihin, joita on kolme: kirjoitustila, muokkaustila ja komentotila. Myöhemmissä vi-toteutuksissa (esimerkiksi vim) mukaan on lisätty myös tekstialueiden valintaan ja käsittelyyn tarkoitettu valintatila, eli "visuaalinen" tila. Tilojen välillä siirtyminen tuottaa jonkin verran päänvaivaa aloitteleville vi-käyttäjille. Tilojen hyvä ominaisuus on, että vi-käyttäjän ei tarvitse siirtää käsiään koskaan pois kirjoitusnäppäimiltä muokatakseen tekstiä. Perusketju tekstin syöttämiseen vi -editorilla etenee aina seuraavasti:
- Käynnistymisen jälkeen olet aina muokkaustilassa, jossa voit muokata tekstiä näppäinkomentoja käyttämällä
- Kirjoitustilaan siirrytään aina joillakin näppäinkomennolla: i,I,a,A,o tai O
- Muokkaustilaan palataan aina <esc> -näppäimellä.
- : näppäimellä käynnistetään ex -tyylinen komentotila, jossa hallitaan tiedostoja ja puskureita kokonaisuuksina
- Valintatilaan, eli visuaaliseen tilaan siirrytään komennolla v, V tai Ctrl+V.
Perus-vi:n etuna on se, että se toimii kaikissa Posix-standardia toteuttavissa järjestelmissä.[4]
Peruskomennot
- <esc> : Palaa muokkaustilaan kaikista tiloista paitsi ex-tilasta
- :wq : Siirtyy komentotilaan ja suorittaa tallettamisen ja poistumisen vi:stä
- :q! : Siirtyy komentotilaan ja suorittaa poistumisen tallentamalla vaikka olisit tehnyt muutoksia
- i : Siirtyy lisäystilaan kursorin kohdalle
- a : Siirrytään lisäystilaan kursorin kohdalla olevan merkin perään
- I (iso i): Siirtyy lisäystilaan rivin alkuun
- A : Siirtyy lisäystilaan rivin loppuun
- o : Avataan uusi rivi lisäystilaan nykyisen alapuolelle
- O : Avataan uusi rivi lisäystilaan nykyisen yläpuolelle
- k : Rivi ylöspäin
- j : Rivi alaspäin
- l : Merkki oikealle
- h : Merkki vasemmalle
- H : Siirtyy näytössä olevan ensimmäisen rivin kohdalle
- M : Siirtyy näytössä olevan keskimmäisen rivin kohdalle
- L : Siirtyy näytössä olevan viimeisen rivin kohdalle
- ^y : Vierittää näyttöä ylöspäin (kursori pysyy paikallaan)
- ^e : Vierittää näyttöä alaspäin (kursori pysyy paikallaan)
- x : Poista merkki kursorin alta
- X : Poista merkki kursorin vasemmalta puolelta
- dd : Poista rivi kursorin kohdalta (menee kopiopuskuriin)
- G : Mene tiedoston loppuun
- :1 : Mene riville 1
- 1G : Mene riville 1
- yy : Kopioi rivi (yank) kopiopuskuriin
- p : Palauta kopiopuskuri tämän rivin alapuolelle
- P : Palauta kopiopuskuri tämän rivin yläpuolelle
- :r tiedosto.txt : Lue tiedosto.txt kursorin kohdalle ja palaa komentotilaan
- :w apu.txt : Talleta puskuri nimelle apu.txt
- /apudapu : Hae merkkijonoa apudapu eteenpäin
- ?apudapu : Hae merkkijonoa apudapu taaksepäin
- . : Toista edellinen komentotilan komento
- :1,$s/apudapu/hapupapu/gc : Korvaa apudapu sanalla hapupapu kaikkialla (g) ja kysy ennen korvausta varmistus (c)
- ma : Merkataan komentotilassa rivi sisäisesti riviksi A ja kohdistimen paikka merkiksi A
- mb : Merkataan komentotilassa rivi sisäisesti riviksi B ja kohdistimen paikka merkiksi B
- 'a : Siirry A merkin riville
- 'b : Siirry B merkin riville
- `a : Siirry A merkin kohdalle
- `b : Siirry B merkin kohdalle
- :'a,'by : Kopioidaan rivit A ja B merkkien väliltä, rivit A ja B mukaan ottaen, kopiopuskuriin
- ra : Korvaa kursorin alla oleva merkki merkillä a
- :! <komento>: Suorittaa vi:tä ajavassa komentotulkissa komennon
- !! <komento>: Suorittaa vi:tä ajavassa komentotulkissa komennon ja korvaa komennon tulosteella kursorin kohdalla olevan rivin
- Q : Siirtyy muokkaustilasta ex-tilaan, takaisin muokkaustilaan pääsee komennolla vi
Lähteet
- Harley Hahn's Guide to Unix and Linux unix.harley.com. Viitattu 7.9.2019. (englanniksi)
- Peter H. Salus: Chapter 4. A Tale of Two Editors (Osa verkossa julkaistua kirjaa The Daemon, the Gnu and the Penguin) 22.4.2005. Groklaw. Viitattu 11.9.2019. (englanniksi)
- vi History linfo.org. Viitattu 9.9.2019. (englanniksi)
- The Open Group Base Specifications Issue 6 The Open Group. Viitattu 5. elokuuta 2007. (englanniksi)