VI-EDITORI
1. Alkeet
---------
Vi on Unixin peruseditori. Se käynnistetään komennolla
% vi nimi
missä nimi on editoitavan tiedoston nimi.
Ennen editoinnin aloittamista on syytä tarkistaa, että päätteen tyypi
on oikein määritelty. Tarkistamien tapahtuu komennolla
% echo $term
Mikäli päättten tyyppi on määritelty väärin, se voidaan korjata komennolla
% set term = x
missä x on päätteen oikea tyyppi (yleensä vt100 tai xterm).
Vi-editorissa on kaksi tilaa: tekstin lisäystila ja komentotila.
Tekstin lisäystilassa voidaan ainoastaan kirjoittaa uutta tekstiä tiedostoon.
Kuvaruudulla siirtyminen, tekstin poistaminen ja siirto suoritetaan
komentotilassa.
Käynnistettäessä vi-editori on komentotilassa. Lisäystilaan päästään
esimerkiksi seuraavilla komennoilla:
a lisää kohdistimen eteen
A lisää nykyisen rivin loppuun
i lisää kohdistimen jälkeen
o lisää uuden rivin nykyisen rivin jälkeen
Lisäystilasta päästään takaisin komentotilaan painamalla esc-näppäintä.
Editointi lopetetaan antamalla komentotilassa komento
:wq
Komentotilassa on käytettävissä mm. seuraavat komennot:
h kohdistin siirtyy merkin vasemmalle
j kohdistin siirtyy rivin alaspäin
k kohdistin siirtyy rivin ylöspäin
l kohdistin siirtyy merkin oikealle
0 kohdistin siirtyy nykyisen rivin alkuun
$ kohdistin siirtyy nykyisen rivin loppuun
G kohdistin siirtyy tiedoston loppuun
1G kohdistin siirtyy tiedoston alkuun
^B kohdistin siirtyy ruudullisen taaksepäin
^F kohdistin siirtyy ruudullisen eteenpäin
:r nimi lukee tiedoston nimi kohdistimen kohdalle
J liittää seuraavan rivin nykyisen rivin perään
Tekstistä voidaan etsiä haluttua merkkijonoa komennolla
/mallijono
Kohdistin jää ensimmäisen mallijonoon täsmäävän merkkijonon
kohdalle. Komennolla n editori etsii seuraavan mallijonon
esiintymän.
Merkkijono voidaan muuntaa toiseksi komennolla
: alkurivi,loppurivi s/korvattava jono/uusi jono/g
Rivinumeroiden ilmoittamisessa voidaan käyttää seuraavia erikosmerkkejä:
$ tekstin viimeinen rivi
. se rivi, jolla kohdistin on tällä hetkellä
Rivinumerot saadaan näkyviin komennolla
:set number
2. Komennot
-----------
Alla on esitetty luettelonomaisesti vi-editorin tärkeimmät komennot.
l kursori yhden sarakkeen oikealle
h kursori yhden sarakkeen vasemmalle
j kursori yhden rivin alas
k kursori yhden rivin ylös
L kursori kuvaruudun alareunaan (myös esim 5L 5 riviä alareunasta)
H kursori kuvaruuden yläreunaan ( -"- )
M kursori kuvaruudun keskelle
w,W seuraavan sanan alkuun
b,B edellisen sanan alkuun
e nykyisen sanan loppuun
^ nykyisen rivin alkuun
$ nykyisen rivin loppuun
,+ seuraavan rivin alkuun
- edellisen rivin alkuun
nG siirrytään riville n, oletusarvona viimeinen rivi
nx poistaa n merkkiä kursorista alkaen, olet.arvo 1
nX poistaa n merkkiä kursorin edestä, olet.arvo 1
ry korvaa kursorin osoittaman merkin y:llä
R korvaa rivillä merkkejä, kunnes annetaan
cw.. korvaa kursorin osoittaman sanan ..:llä
ndd poistaa n riviä, olet.arvo 1
ndw poistaa n sanaa, olet.arvo 1
D poistaa rivin lopun kursorista alkaen
i... lisää ... kursorin eteen
I... lisää ... rivin alkuun
a... lisää ... kursorin perään
A... lisää ... rivin loppuun
o... lisää ... nykyisen rivin alle lisätylle riville
O... lisää ... nykyisen rivin yläpuolelle lisätylle riville
u poistaa edellisen komennon vaikutuksen
nY kopioi n riviä kursorista alkaen poistopuskuriin, ol.arvona 1
p poistopuskurin sisältö kursorin perään (alapuolelle)
P(iso) poistopuskurin sisältö kursorin eteen (yläpuolelle)
nö siirrytään rivillä sarakkeeseen n
s... korvaa kursorin osoittaman merkin ...:llä
S... korvaa kursorin osoittaman rivin ...:llä
C... korvaa kursorista alkaen rivin lopun ...:llä
z. nykyinen rivi kuvaruudun keskelle
z nykyinen rivi kuvaruudun ensimmäiseksi riviksi
) virkkeen loppuun
( virkkeen alkuun
/... etsii merkkijonon ... kursorista eteenpäin
?... etsii merkkijonon ... kursorista taaksepäin
n toistaa viimeksi suoritetun etsinnän
% etsii alkusulkua vastaavan loppusulun (esim kätevä C:ssä)
Toimii myös päinvastoin. Toimii suluille äå, (), ÄÅ .
D tekstin selaus, puoli ruudullista alas eli eteenpäin
F tekstin selaus, koko ruudullinen alas eli eteenpäin
U tekstin selaus, puoli ruudullista ylös eli taaksepäin
B tekstin selaus, koko ruudullinen ylös eli taaksepäin
Y tekstin selaus, yksi rivi alas eli eteenpäin
E tekstin selaus, yksi rivi ylös eli taaksepäin
V :n kirjoittaminen
Z editorin käytön pysäytys (STOP)
L uudistaa kuvaruudun
nD tekstin selaus n riviä alaspäin
nU tekstin selaus n riviä ylöspäin
å kappaleen loppuun (tyhjä rivi, nroff-kom .LP,.PP,.IP,.bp)
ä kappaleen alkuun ( -"- )
ÅÅ seuraava otsikko (nroff-kom .NH, .SH )
ÄÄ edellinen otsikko ( -"- )
:w tiedoston kirjoitus levylle
:q editoinnin lopetus
:wq kirjoitus ja lopetus
:q! ehdoton lopetus
:s/.../,,,/ korvaa kursorin osoittamalla rivillä ...:n ,,,:lla
:s toistaa yo. korvauksen edellisillä parametreillä
:i,js/.../,,,/ riveillä i..j korvataan ensimmäinen ... ,,,:lla
:i,js/.../,,,/g riveillä i..j korvataan kaikki ...:t ,,,:illa
(rivinumeroissa $ merkitsee viim. riviä ja . nykyistä)
:e name siirrytään editoimaan tiedostoa name
Etsintä- ja merkkijonolauseissa korvausmerkit ovat:
y* täsmää merkkijonoihin , y, yx, yxx, y...
Ä1ÅÄ...Å täsmää merkkeihin ...
Äx-yÅ täsmää merkkeihin x:stä y:hyn
mx rivi merkitään kirjaimella x (a-z)
'x siirrytään kirjaimen x merkitsemään paikkaan
`` siirrytään takaisin edelliseen paikkaan
<< siirretään kursorin osoittamaa riviä vasemmalle
>> siirretään kursorin osoittamaa riviä oikealle
'' takaisin edelliseen paikkaan
Editorissa on käytettävissä 25 puskuria, joihin viitataan kirjaimella
x (a-z). Lisäksi on 9 tuhoamispuskuria, joihin viitataan numerolla n
(1-9). Tuhoamispuskureissa on 9:n edellisen tuhoamiskerran sisällöt.
"xY kursorin osoittama tekstirivi puskuriin x
"xp tulostetaan puskurin x sisältö
Makroja on kahta tyyppiä. Ensimmäisessä puskuriin x talletetaan
komentosarja, jonka makro suorittaa. Toisessa makro ilmaistaan
:map-määritteen avulla.
@ x suoritetaan puskurissa x oleva makro
:map x y x on kirjain tai kirjainyhdistelmä, joka suorittaa
y:ssä ilmoitetut toiminnot
:ab x y sanojen korvaus. kirjoitettaessa tekstiä korvautuu
merkkijono x aina y:llä
:set wm=n aiheuttaa sen, että kun ollaan kirjoittamassa n:ttä
merkkiä ennen rivin loppua, katkaisee editori rivin
automaattisesti lähimmästä tyhjeestä tai tab-kohdasta
(:set wm=10 hyvä tekstiä kirjoitettaessa)
:set ai rivinsiirron yhteydessä alkaa seuraava rivi
automaattisesti samalta tasolta kuin edellinen
( D siirtää alkukohtaa vasemmalle)
:show match etsii C-kielessä alkusulkua vastaavan loppusulun

Last updated: October 21, 1996