UNIQ,
VI & VIM
Vi on väga võimas ja laialt levinud tekstiredaktor.
vi starditakse käsurealt:
vi faili_nimi
vi -l on kaks moodi: käsumood ja redigeerimismood. Kui fail avatakse, on
vi käsumoodis. Käsumoodis on kahte tüüpi käskusid.
- käsud teksti redigeerimiseks. Need on kõik need, mis viivad
redigeerimismoodi ja lisaks veel kustutamise ja kopeerimise käsud.
- käsud, mis sisestatakse käsureale, sinna viib koolon ':'
Redigeerimismoodi viivad käsud:
a - append - lisa kursori järele
A - append - lisa rea lõppu
i - insert - lisa kursori ette
I - insert - lisa rea algusesse
c - change - alusta muutmist
C - change - muuda rea lõpuni
o - open - alusta uut rida käesoleva rea järel
O - open - alusta uut rida enne käesolevat rida
r - asenda kursori all olev täht
R - mine asendusmoodi
s - substitute - asenda täht
S - substitute - asenda kogu rida
Kõigist neist sisestamismoodidest, välja arvatud r, toob
tagasi käsumoodi ESC. Ühe tähe asendamisest r-ga tuleb ise
välja, ESC-i pole vaja.
Mõnda redigeerimiskäsku saab kasutada ka koos arvuga:
cw - muuda sõna
5cw - muuda viis sõna
cc - muuda kogu rida
5cc - muuda 5 rida
Edasiliikumise käsud:
w - mine edasi järgmise sõna algusesse
b - mine tagasi selle või eelmise sõna algusesse
e - mine sõna lõppu
k - mine eelmisele reale
j - mine järgmisele reale
h - mine üks sümbol edasi
l - mine üks sümbol tagasi
CTRLf - mine edasi ekraanitäis
CTRLb - mine tagasi ekraanitäis
CTRLd - mine edasi umbes pool ekraanitäit
CTRLu - mine tagasi umbes pool ekraanitäit
H - mine ekraani algusesse
L - mine ekraani lõppu
ENTER või + - mine järgmise rea algusesse
- - mine eelmise rea algusesse
0 - mine käesoleva rea algusesse (see on null, mitte O-täht)
$ - mine käesoleva rea lõppu
G - mine teksti lõppu
nG - mine reale n (seega 1G läheb esimesele reale)
Enamusi nendest käskudest saab kasutada koos arvuga, näiteks:
50l - mine 50 sümbolit paremale
200j - mine 200 rida edasi
10w - mine 10 sõna edasi
2b - mine kaks sõna tagasi
Tekstis ringi liikumiseks võib kasutada nooli, aga kui nooled ei tööta või klaviatuuris ei ole nooli, siis keskmise rea neli tähte h, j, k, l töötavad käsumoodis nooltena.
Käsureal sisestatavad käsud:
:w - kirjuta kettale
:w fail - kirjuta kettale faili 'fail'
Kui 'fail' on olemas, siis hoiatab ja ei salvesta. Kui tahad ikkagi
olemasoleva faili üle kirjutada, siis
:w! fail
vi-d startides võib kohe anda käsu mitme faili redigeerimiseks.
Kui Sul on failid fail1, fail2, fail3, fail4, siis
vi fail1 fail2 fail3 fail4 - teatab, et 4 faili redigeerida ja avab esimese
Kui oled esimesega töö lõpetanud ja selle salvestanud, siis
:n - redigeeri järgmist faili
:n! - redigeeri järgmist ka siis kui eelmine on pärast redigeerimist
salvestamata
Kui faili redigeerimisel läks midagi väga untsu ja seda ei ole veel
salvestatud ning Sa soovid alustada redigeerimist uuesti viimati salvestatud
kohast, siis
:e!
Kui oled hakanud vi-ga redigeerima ühte faili ja peale sellega
töö lõpetamist soovid alustada tööd järgmisega,
siis
:e faili_nimi
Kui oled vi-st väljumata hakanud kas n-ga või e-ga redigeerima teist faili, siis saab nende kahe faili vahel vahetada CTRL6 -ga (osades vi versioonies CTRL^).
Kui oled niimoodi mitu korda vahetanud ja enam ei mäleta, millises failis oled, siis saad CTRLg -ga teada, millises failis oled ja mitmendal real ja kas faili on muudetud pärast viimast salvestamist.
Kui ekraan on millegipärast redigeerimise ajal sassi läinud, siis
CTRLl - taastab ekraani (refresh).
:q - välju redaktorist
Kui pärast viimast salvestamist on failis midagi muudetud, siis hoiatab
ja ei välju redaktorist. Kui soovid ikkagi redaktorist väljuda,
siis
:q!
Mõned uuemad vi-d näitavad all käsurea paremas nurgas, kas oled
käsumoodis või redigeerimismoodis. Kui sealt ei näe midagi ja
ei mäleta, kummas moodis oled, siis ESC toob alati käsumoodi tagasi.
ESC-i võid vajutada mitu korda järjest ja midagi halba ei juhtu.
Seega siis kindel moodus redigeerimise lõpetamiseks koos salvestamisega
on:
ESC :wq
Kustutamine (käsumoodis):
x - kustuta kursori all olev sümbol
X - kustuta sümbol kursorist vasakul
dd - kustuta rida
dw - kustuta sõna
D - kustuta kursorist rea lõpuni
Ka neid käske (v.a D) saab kasutada koos arvuga:
12x - kustuta 12 sümbolit
200dd - kustuta 200 rida
4dw - kustuta 4 sõna
Asukoha ja tekstiosa märgendamine:
Redigeeritavas failis saab teha märgendeid, mis ei muuda faili, aga
aitavad leida märgendatud kohti. Märgendeid võib kasutada
asendamis-, salvestamis- ja kustutamiskäskudes. Pärast failist
väljumist märgendid unustatakse. Märgend on
ühetäheline, see defineeritakse käsuga m
ma - rida, millel on kursor, saab märgendi 'a'
Märgendile viidatakse apostroofiga '
'a - viib kursori reale märgendiga 'a'
Faili osa kustutamine:
:25,55d - kustuta read 25-55
:'a,'bd - kustuta read märgendist 'a' märgendini 'b'
Faili osa salvestamine uude faili:
:1,200w uus_fail - salvestab read 1-200 faili 'uus_fail'
:'a,'bw uus_fail - salvestab read alates märgendist 'a' kuni
märgendini 'b' faili 'uus_fail'
Teksti saab märgendada ka VISUAL moodis, sinna viib v-täht. Kui VISUAL moodis kursoriga ringi sõita, siis märgitakse tekst ära ja selle märgitud teksti võib korraga ära kustutada (d) või siis korraga muuta (c). Saab ka kõik korraga puhvrisse kirjutada (y). Põhimõtteliselt käib see nagu hiirega teksti ära märkinine, ainult et hiire asemel kasutatakse kursoreid. Kui Sa siiski leiad, et Sa ei soovi märgitud tekstiosa ära kustutada või ära muuta, Siis VISUAL moodist viib välja ESC
Kahe rea kokku ühendamine:
J - tõstab järgmise rea käesoleva rea lõppu
Asendamine:
See käsk antakse käsurealt
:s/abc/bcd/ - asendab real, kus asub kursor esimest korda esineva sõna
(stringi) 'abc' stringiga 'bcd'
:s/abc/bcd/g - asendab real, kus on kursor kõik stringid 'abc'
stringidega 'bcd'
:'a,'bs/abc/bcd/ - asendab ridadel alates märgendist 'a' kuni
märgendini 'b' rea algusest esimese stringi 'abc' stringiga 'bcd'
:'a,'bs/abc/bcd/g - märgendist 'a' kuni märgendini 'b' asendab
kõik 'abc'-d 'bcd'-ga
Asendamiskäsus võib märgendite asemel kasutada ka reanumbreid
:10,50s/abc/abcfgh/g - ridadel 10 kuni 50 asendab kõik 'abc'-d
'abcfgh'-ga
:1,$s/abc/abcfgh/g - asendab kogu failis kõik 'abc'-d 'abcfgh'-ga
:1,$s/Tere/Tere hommikust!/g - asendab kogu failis 'Tere' sõnadega 'Tere
hommikust!'
:1,$s/Tere hommikust!/Tere/g - asendab kogu failis kõik sõnapaarid
'Tere hommikust' sõnaga 'Tere'
Kui avada dos-i fail, siis on iga rea lõpus ^M, nendest
lahtisaamiseks on kõige lihtsam moodus
:1,$s/CTRLv ENTER//
(CTRLv ENTER-i peale peab käsureale ilmuma ^M)
Taastamine:
u - taastab viimase kustutamise või redigeerimise eelse seisu (undo),
kui uuesti vajutada, siis taastab eelviimase kustutamise või
redigeerimise eelse seisu jne. Kui u-ga sai kogemata liiga palju taastatud,
siis CTRLr taastab undo-eelse seisu
p - taastab viimati kustutatu kursori järele
P - taastab viimati kustutatu kursori ette
"1p - sama mis p
"2p - taastab eelviimati kustutatu kursori järele
"5p - taastab üleüleüle-eelviimati kustutatu kursori
järele
Puhvri kasutamine:
yy - kirjuta rida puhvrisse
5yy - kirjuta 5 rida puhvrisse
"pyy - kopeeri rida puhvrisse "p
"p6yy - kopeeri 6 rida alates kursorist puhvrisse "p
Puhvrina võib kasutada kõiki tähti ja vist ka numbreid. Numbritega puhvreid kasutab vi ise kustutamiste meeles pidamiseks. Nii et võimalik on taastada rohkem kui ainult viimane kustutamine (vt. taastamine).
Kui pärast ridade puhvrisse salvestamist vahetad CTRL6 -ga või
:n -ga faili, siis teises failis saad lisada puhvri sisu
"pp - lisa puhvri "p sisu kursori järele
"pP - lisa puhvri "p sisu kursori ette
Kui kirjutasid rea puhvrisse käsuga yy, siis lihtsalt
p - lisa puhvri sisu kursori järele
P - lisa puhvri sisu kursori ette
Kui Sa peale yy-ga rea puhvrisse kirjutamist oled midagi kustutanud, siis p
taastab kustutatu, mitte selle, mille Sa puhvrisse kirjutasid, seega kasulikum
oleks kasutada tähtedega puhvreid.
Väikesed kavalused:
. - korda eelmist redigeerimist
Kui kaks tähte on sõnas vahetusse läinud, siis xp kustutab tähe ja taastab selle kursori järele, seega vahetab kahe tähe asukoha, ddp vahetab kaks rida omavahel.
Kui soovid mõnes tekstis vahetada osa sõnu 'Tere' välja
sõnade 'Tere hommikust!' vastu, siis
1G - mine teksti algusesse
/Tere - leia 'Tere'
cw - muuda sõna
Tere hommikust! - uus tekst sõna 'Tere' asemel
ESC - välju redigeerimismoodist
n - leia järgmine 'Tere'
kui seda ei soovi asendada, siis
n - leia järgmine 'Tere'
või kui soovid asendada, siis
. - korda eelmist redigeerimist
K - otsib selle sõna kohta, millel kursor asub, manuaali, st. sama, mis
shelli käsurealt anda käsk
man see_sõna_mis_on_kursori_all
VIM
vim on vi uuendatud ja täiendatud versioon. Selles töötavad
kõik needsamad käsud, mis vi-s, aga lisaks nendele veel
mõned. Näiteks:
:set nowrap ja :set wrap - vastavalt murrab ja ei murra pikad read ekraani laiuseks
Uuemad vim-i versioonid ei näita dos-i faile redigeerides enam rea
lõppu ^M-i, vaid fail avatakse dos-formaadis. Sellegipoolest
mõned teised tekstiredaktorid näitavad sama faili iga rea
lõppu endiselt ^M-i. Et nendest ^M-idest lahti saada, tuleb
kirjutada
:set fileformat=unix
MORE
more [võtmed] [failid] - trükib failid ekraanile ekraanitäite
kaupa
Võtmed:
+arv - alates reast arv
+/tekst - alates kaks rida enne tekst-i
-num arv - sea ekraani suuruseks 'arv' rida
Kui oled more-s, siis saad kasutada mitmeid käske:
tühik - järgmine ekraanitäis
enter (return) - järgmine rida
q - katkestab ära
s - üks rida edasi
f - ekraanitäis edasi
b - ekraanitäis tagasi
' - tagasi sinna, kus algas eelmine otsing
= - trükib rea numbri
/tekst - otsib 'tekst'-i
n - kordab viimast otsimist n korda
v - läheb vi-sse alates käesolevast reast
CTRLl - taastab ekraani
:n - läheb järgmisse faili - kui more-ga vaatad mitut faili korraga
:p - läheb eelmisse faili
:f - trükib käesoleva faili nime ja rea numbri
GREP
grep [võtmed] regulaaravaldis [failid] - otsi ühest või
mitmest failist sõna (stringi) või regulaaravaldist
grep Tere * - otsib kõigist aktiivse kataloogi failidest
sõna 'Tere'
Juhul, kui ositav string koosneb mitmest sõnast, siis tuleb need sõnad panna ülakomade vahele
Võtmed:
-num - näitab leitud vastetele num eelnevat ja järgnevat rida
-A num - näitab leitud vastetele num järgnevat rida
-B num - näitab leitud vastetele num eelnevat rida
-i - ei tee vahet suurtel ja väikestel tähtedel
-v - otsib ainult neid ridasid, milles ei ole vastavat kirjet
-c - näitab ainult leitud kirjete arvu, kirjeid endid ei näita
Grep on väga kasulik käsk tekstifailidest vajaliku sõna
leidmiseks. Näiteks kui keegi on Sulle mingist konkreetsest asjast
kirjutanud ja Sa ei suuda seda kirja üles leida, siis mine 'mail'
kataloogi ja kirjuta
grep see_sõna *
siis arvuti otsib kõigist Sinu kirjadest otsitavat sõna. Kui
ta midagi leiab, siis ta kirjutab, millises failis see sõna oli ja
selle järele ka selle rea, kus see sõna oli. Kui Sulle sellest
ühest reast ei piisa, siis kirjuta
vi -v faili_nimi
/otsitav_sõna
Vi avaneb siis read-only moodis, et Sa kogemata oma kirja ära ei rikuks.
Failide nimed 'mail' kataloogis on needsamad, mis Sul on 'pine's, st.
sent-mail, inbox jne. Kui sul on kõik samateemalised kirjad kirjutatud
ühte kataloogi siis kirjuta
grep see_sõna kataloogi_nimi
ja arvuti otsib seda sõna ainult vastavast kataloogist. Kui Sul on
väga palju kirju, siis saab nii tunduvalt kiiremini.
wc [võtmed] failid - loeb kokku tekstifailide read, sõnad ja baidid, kui on antud mitu faili, siis reastab tulemused üksteise alla ja viimasele reale liidab kokku kõikide failide tulemused
Võtmed:
-c - trükib ainult baitide arvu
-w - trükib ainult sõnade arvu
-l - trükib ainult ridade arvu
UNIQ
uniq [võtmed] fail1 fail2
Kustutab failist fail1 kõrvutiolevad korduvad read, nii et mitme ühesuguse rea korral jääb alles ainult üks rida
Võtmed:
-n - ei kontrolli rea esimest n välja, väljad on eraldatud
kas tühikute või TAB-idega
+n - ei kontrolli rea esimest n sümbolit
-c - trükib iga rea ainult ühe korra ja loendab
-d - trükib korduvad read üks kord, unikaalseid ei trüki
-u - trükib ainult unikaalsed read, korduvad jätab üldse vahele
Trükitakse faili 'fail2' või kui see puudub, siis standardväljundisse