Vim
Tässä artikkelissa kerrotaan yleisesti ohjelmasta Vim. Opas Vimin peruskäyttöön löytyy artikkelista Vimin peruskäyttö.
Vi IMproved | |
---|---|
Käyttöliittymä | teksti |
Lisenssi | GPL-yhteensopiva/VIM-lisenssi |
Kotisivu | www.vim.org |
Vim (Vi Improved) on Bram Moolenaarin vi-editorin pohjalta kehittämä, tekstitilassa (tai pääteikkunassa) toimiva tekstieditori. Vimistä on myös saatavilla graafiset versiot gvim ja kvim.
Vi
Vi on Bill Joyn vuonna 1976 BSD:lle kehittämä vi-tekstieditorin alkuperäisversio. Vi pohjautuu ex-rivieditoriin. Nykyajan Linux-järjestelmissä Vi on yleensä symbolinen linkki Vimiin. Vim ei ole ainut vi-klooni, vaikka tunnetuin onkin. Muita vi-klooneja ovat mm. Elvis ja nvi.
Vi-toteutusten toiminnallisuus määritellään IEEE:n Unix-standardissa.
Aloittaminen
Vim saattaa olla melkoinen "kulttuurishokki" uusille käyttäjille. Siinä ei esimerkiksi ole valikkoriviä ollenkaan, ja kun käynnistät editorin, et pääsekään heti kirjoittamaan. Jopa poistuminen saattaa aiheuttaa päänvaivaa, jos ei tiedä mitä tekee. Vim on kuitenkin hyvä editori, jos sille uhraa hieman aikaa.
Oppiminen
Vimin peruskäyttöä neuvotaan artikkelissa Vimin peruskäyttö.
Helppo tapa opetella Vimin peruskäyttö on vimtutor-ohjelma, joka tulee Vimin mukana. Pika-apua jonkin näppäimen/komennon/tehtävän suhteen saat kirjoittamalla komentotilassa :help [aihe] esimerkiksi :help copy. Erityisesti Debian-pohjaisissa jakeluissa ei Vimin oletusasennuspaketin (vim-tiny) mukana toimiteta ohjeita eikä valmiita asetustiedostoja. Ohjeet saa käyttöön asentamalla laajemman Vim-version, esimerkiksi paketin vim tai vim-gtk. Näppärän muistilapun voi tulostaa itselleen täältä [1] (Kyseessä siis Microsoft Visual Studion laajennuspalikan ViEmun kotisivu).
Käynnistäminen
Vim käynnistetään yksinkertaisesti komennolla
vim tiedosto
Jos Vim on jostain syystä kaatunut tiedostoa muokatessa, muokkausta jatketaan komennolla
vim -r tiedosto
Muokkaaminen voidaan aloittaa suoraan riviltä N komennolla
vim +N tiedosto
ja tiedoston lopusta komennolla
vim + tiedosto
Muokkaaminen voidaan aloittaa myös kohdasta, jossa tietty merkkijono esiintyy ensimmäisen kerran komennolla
vim +/merkkijono tiedosto
Useampia tiedostoja voidaan muokata komennolla
vim tiedosto1 tiedosto2
Tällöin kun ensimmäinen tiedosto suljetaan, aloitetaan toisen tiedoston muokkaaminen.
Toimintatilat
Vim toimii erilaisissa toimintatiloissa (engl. mode, myöhemmin viitataan termiin pelkästään tilana). Näitä ovat mm. input- eli syöttötila, command- eli komentotila, visual- eli maalaustila ja ex mode eli ex-tila. Kun Vim käynnistyy, se on yleensä komentotilassa, jossa editorille voi antaa erilaisia komentoja. Syöttötilassa taas voi lisätä tiedostoon tekstiä. Alkuperäisestä vistä poiketen Vimissä tilan näkee yleensä ruudun oikeasta alalaidasta. Syöttötilasta pääsee takaisin komentotilaan painamalla ESC. Kirjoitustilaan pääsee painamalla i- tai INSERT-näppäintä.
Komennot
Nämä komennot toimivat komentotilassa. Kannattaa tarkistaa että caps lock on pois päältä, sillä Vimin komennot ovat riippuvaisia kirjainkoosta.
Kursoria liikuttavia komentomerkkejä (motion keys, listauksissa komennot ilmaistu ominaisuutena M) voidaan käyttää joidenkin komentojen kanssa rajaamaan komennon toimKIVESKIVESKIVESinta-aluetta. Komennot jotka vastaanottavat tai tarvitsevat kursorinliikkeitä toimiakseen, ilmaistaan ominaisuutena m. (esim. 'd3e' poistaa seuraavat kolme sanaa tai välimerkkiä).
Joitain komentoja voidaan kertoa lisäämällä niiden eteen numeroita. (Esim. '3de' on tulokseltaan identtinen edellisen esimerkin kanssa, listauksissa ilmaistu ominaisuutena K).
Jotkin komennot kuten 'f' haluavat seurakseen jonkin kirjaimen, merkin tai numeron (Esim. 'fa' = etsi seuraava 'a'). Tällaiset tapaukset ilmaistaan selityksissä löytyvillä pisteillä ....
Joihinkin komentoihin kuten 'p' voidaan lisätä rekisteriviittaus, jolloin ne käyttävät kyseistä rekisteriä toimiinsa (Esim. '"aY' kopioi koko rivin rekisteriin 'a' josta se voidaan liittää takaisin tekstiin, '"ap'). Tällaiset tapaukset ilmaistaan ominaisuutena R.
Erikoisnäppäimet ja näppäinyhdistelmät kuten F1, Home, Control + End ja Shift + Enter on ilmaistu näppäinkartoittamiseen sopivassa muodossa.
(Esim. F1 = '<F1>', Control + V = <C_v>, Enter = <CR>).
Peruskomennot
Komento | Kuvaus |
ZZ tai :wq tai :x | Tallentaa ja poistuu |
:w | Tallentaa tiedoston |
:w tiedosto | Tallentaa tiedoston nimellä tiedosto |
:w! | Tallentaa tiedoston nimellä jättäen tarkistamatta mm. kirjoitusoikeudet |
:a,bw tiedosto | Tallentaa tiedot riviltä a riville b nimellä Penis |
:a,bw>>tiedosto | Tallentaa tiedot riviltä a riville b tiedoston tiedosto loppuun |
:q | Poistuu tallentamatta |
:q! | Pakottaa poistumaan tallentamatta |
:e | Muokkaa tiedostoa uudelleen, ei tallenna muutoksia |
:e tiedosto | Avaa muokattavaksi tiedoston tiedosto |
:we! | Muokkaa tiedostoa uudelleen, tallentaa muutokset ennen uudestaan muokkausta |
:u | Peruu viimeisimmän muutoksen |
:redo tai Ctrl-R | Tekee perutun muutoksen uudelleen |
Aakkosnäppäinten komennot komentotilassa
Komentomerkki | R | K | M/m | Selitys |
---|---|---|---|---|
a | Lisää tekstiä aloittaen heti kursorin oikealta puolelta | |||
A | Lisää tekstiä rivin loppuun | |||
b | X | M | Mene sana taaksepäin pysähtyen välimerkkeihin | |
B | X | M | Mene sana taaksepäin, välimerkit sananosina sananosia, yksinään sanoja | |
c | m | Poistaa kursorinliikkeiden (motion) verran tekstiä ja siirtyy syöttötilaan | ||
C | Poistaa koko rivin tekstiä ja siirtyy syöttötilaan | |||
d | X | X | Poistaa kursorinliikkeiden verran tekstiä, dd poistaa koko rivin | |
D | X | X | Poistaa tekstin kursorista rivin loppuun | |
e | X | M | Liikuttaa kursoria seuraavan sanan loppuun pysähtyen välimerkkeihin | |
E | X | M | Liikuttaa kursoria seuraavan sanan loppuun, välimerkit sananosina-- | |
f | X | M | Etsi seuraava kirjain ... | |
F | X | M | Etsi edellinen kirjain ... | |
g | Lisätoimintonäppäin, tee toiminto ... | |||
G | Siirtyy riville ... tai tiedoston loppuun (esim. '10G' -> siirry riville '10') | |||
h | X | M | Liikuttaa kursoria vasemmalle | |
H | M | Liikuttaa kursorin näytettävän tekstiosan alkuun | ||
i | Lisää tekstiä heti kursorin kohdalle | |||
I | Lisää tekstiä rivin alkuun | |||
j | X | M | Liikuttaa kursoria alas | |
J | X | Yhdistää seuraavan rivin nykyiseen poistamalla rivinvaihdon | ||
k | X | M | Liikuttaa kursoria ylös | |
K | Ajaa kursorin alla olevan sanan man-komennon argumenttinä | |||
l | X | M | Liikuttaa kursoria oikealle | |
L | M | Liikuttaa kursorin näytettävän tekstiosan loppuun | ||
m | Merkitse rivi ...ksi (esim. 'ma' merkitsee rivin 'a'ksi, jolloin riville palaaminen onnistuu tempulla ''a') | |||
M | M | Siirtää kursorin keskelle näytettyä tekstiosiota, vasempaan reunaan | ||
n | X | M | Hae seuraava (esim f/F:n tai /:n kanssa käytettynä) | |
N | X | M | Hae edellinen | |
o | Lisää uusi rivi ja tekstiä rivin alapuolelle | |||
O | Lisää uusi rivi ja tekstiä rivin yläpuolelle | |||
p | X | Liittää viimeisimmän poistetun tai kopioidun ('y'anked) tekstin kursorin jälkeen | ||
P | X | Liittää viimeisimmän poistetun tai kopioidun tekstin kursorin edelle | ||
q | Aloita makro ... | |||
Q | Siirry ex-tilaan (ex mode) | |||
r | Korvaa yksi merkki kursorin kohdalla merkillä ... | |||
R | Ylikirjoita kursorista eteenpäin, sama kuin 'i<Insert>' | |||
s | X | X | Poista kirjain alapuolelta ja siirry syöttötilaan, sama kuin 'xi' | |
S | X | X | Poista rivi ja siirry syöttötilaan, sama kuin 'ddi' | |
t | X | M | Mene seuraavaa kirjainta ... edeltävään merkkiin | |
T | X | M | Mene edellistä kirjainta ... seuraavaan merkkiin | |
u | X | Kumoa edellinen muutos | ||
U | Kumoa muutokset koko riviltä | |||
v | Siirry kirjaimia maalaavaan tilaan (visual mode) | |||
V | Siirry rivejä maalaavaan tilaan, <C_v> siirtyy suorakulmia (block) maalaavaan tilaan | |||
w | X | M | Liikuttaa kursorin seuraavaan sanaan pysähtyen välimerkkeihin | |
W | X | M | Liikuttaa kursoria seuraavaan sanaan, välimerkit sananosina-- | |
x | X | X | Poista merkki kursorin alta | |
X | X | X | Poista edeltävä merkki | |
y | X | m | Kopioi kursorinliikkeiden verran tekstiä | |
Y | X | Kopioi koko rivi | ||
z | Lisätoimintonäppäin, tee toiminto ... | |||
Z | Sulje Vim (ZZ tallentaa ja lopettaa, vrt. ':x', ZQ lopettaa, vrt. ':q!') | |||
å,Å,ä,Ä,ö,Ö | Käyttämättömiä näppäimiä, vapaana esimerkiksi käyttäjän omille määrityksille |