Ero sivun ”Ed” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
pEi muokkausyhteenvetoa |
pEi muokkausyhteenvetoa |
||
Rivi 2: | Rivi 2: | ||
'''ed''' on [[tekstitila]]ssa toimiva [[rivieditori]], jolla tiedostoa käsitellään rivi kerrallaan. Siitä on nykyään hyötyä lähinnä [[Bash-skriptaus|skripteissä]] ja tilanteessa, jossa [[pääte|päätteen]] asetukset ovat niin sekaisin etteivät kehittyneemmät esim. [[ncurses]]ia käyttävät kokoruudun tekstieditorit toimi. <tt>ed</tt> löytyy käytännössä jokaisesta [[Unix]]-järjestelmästä. | '''ed''' on [[tekstitila]]ssa toimiva [[rivieditori]], jolla tiedostoa käsitellään rivi kerrallaan. Siitä on nykyään hyötyä lähinnä [[Bash-skriptaus|skripteissä]] ja tilanteessa, jossa [[pääte|päätteen]] asetukset ovat niin sekaisin etteivät kehittyneemmät esim. [[ncurses]]ia käyttävät kokoruudun tekstieditorit toimi. <tt>ed</tt> löytyy käytännössä jokaisesta [[Unix]]-järjestelmästä. | ||
[[ | [[vi]]-editorin taustalla oleva [[ex]]-rivieditori pohjautuu <tt>ed</tt>iin. <tt>ed</tt> on lisäksi vaikuttanut esimerkiksi [[grep]]in ja [[awk]]:n kehitykseen. | ||
== Perustietoa == | == Perustietoa == | ||
<tt>ed</tt> oli Unix-järjestelmän perustekstieditori. Sen alkuperäisellä [[man]]-sivulla lukikin ''"Ed is the standard text editor"'', "''Ed on oletustekstieditori''". [[wikipedia:fi:Ken Thompson|Ken Thompson]] kirjoitti ensimmäisen version siitä [[wikipedia:fi:Assembly_(ohjelmointikieli)|assembly]]-kielellä vuonna 1969. Jo tällöin mukana oli yksi | <tt>ed</tt> oli Unix-järjestelmän perustekstieditori. Sen alkuperäisellä [[man]]-sivulla lukikin ''"Ed is the standard text editor"'', "''Ed on oletustekstieditori''". [[wikipedia:fi:Ken Thompson|Ken Thompson]] kirjoitti ensimmäisen version siitä [[wikipedia:fi:Assembly_(ohjelmointikieli)|assembly]]-kielellä vuonna 1969. Jo tällöin mukana oli yksi <tt>ed</tt>in tärkeimmistä ominaisuuksista: tuki [[säännöllinen lauseke|säännöllisille lausekkeille]]. | ||
<tt>ed</tt> on kuuluisa taloudellisuudestaan: se ei näytä mitään ellei sitä käsketä tekemään jotain. Virheilmoituksetkin ovat vain kysymysmerkkejä (tosin ihan niin huono <tt>ed</tt> ei kuitenkaan ole, virheilmoitukset saa päälle komennolla H). Tämä oli hyvä ominaisuus | <tt>ed</tt> on kuuluisa taloudellisuudestaan: se ei näytä mitään ellei sitä käsketä tekemään jotain. Virheilmoituksetkin ovat vain kysymysmerkkejä (tosin ihan niin huono <tt>ed</tt> ei kuitenkaan ole, virheilmoitukset saa päälle komennolla H). Tämä oli hyvä ominaisuus <tt>ed</tt>in ensimmäisten versioiden aikoihin jolloin ohjelman tuloste tuli kirjoittimelle ja levytila ja muistin määrä olivat rajalliset. Tänä päivänä tämä ominaisuus ei enää ole tärkeä. | ||
== Yksinkertainen muokkaus == | == Yksinkertainen muokkaus == | ||
<tt>ed</tt> on rivieditori, mikä tarkoittaa sitä, että kaikki työskentely kohdistuu aina yhteen tai useampaan riviin tai rivin osaan. Sillä, mitä ruudulla näkyy, ei ole väliä. | <tt>ed</tt> on rivieditori, mikä tarkoittaa sitä, että kaikki työskentely kohdistuu aina yhteen tai useampaan riviin tai rivin osaan. Sillä, mitä ruudulla näkyy, ei ole väliä. | ||
<tt>ed</tt>iä käytetään kahdessa eri tilassa, on ''komentotila'' ja ''kirjoitustila''. Käynnistyksen jälkeen <tt>ed</tt> on komentotilassa jolloin se lukee käyttäjän kirjoittamia komentoja ja suorittaa niitä. Kaikki komennot ovat yhden merkin mittaisia, mutta jotkut vaativat myös erillisiä parametrejä. Komento voi esimerkiksi tarkoittaa "''tallenna ja lopeta''". | |||
Tietyillä komennoilla <tt>ed</tt> siirtyy kirjoitustilaan. Näitä ovat a (lisää tekstiä valitun kohdan perään), i (lisää tekstiä ennen valittua kohtaa) ja c (muuta valittuja rivejä). | Tietyillä komennoilla <tt>ed</tt> siirtyy kirjoitustilaan. Näitä ovat a (lisää tekstiä valitun kohdan perään), i (lisää tekstiä ennen valittua kohtaa) ja c (muuta valittuja rivejä). | ||
=== Tiedostoon kirjoittaminen ja tiedoston tallentaminen ja avaaminen === | === Tiedostoon kirjoittaminen ja tiedoston tallentaminen ja avaaminen === | ||
Luodaan aluksi yksinkertainen tiedostoa | Luodaan aluksi yksinkertainen tiedostoa <tt>ed</tt>iä käyttäen. Käynnistetään <tt>ed</tt> ensin komennolla | ||
$ ed | $ ed | ||
Tämän jälkeen kirjoitetaan tiedostoon tekstiä. Aluksi siirrytään kirjoitustilaan ja kirjoitetaan nykyisen kohdan (tiedoston alun) perään antamalla komento a ja painamalla tämän jälkeen {{Näppäin|enter}}. Tämän jälkeen voidaan kirjoittaa haluttua sisältöä tiedostoon. Rivinvaihto tapahtuu {{Näppäin|enter}}. Kirjoittaminen lopetetaan kirjoittamalla {{Näppäin|enter}} painamisen jälkeen aukeavalle riville vain piste ja painamalla {{Näppäin|enter}}: | Tämän jälkeen kirjoitetaan tiedostoon tekstiä. Aluksi siirrytään kirjoitustilaan ja kirjoitetaan nykyisen kohdan (tiedoston alun) perään antamalla komento a ja painamalla tämän jälkeen {{Näppäin|enter}}. Tämän jälkeen voidaan kirjoittaa haluttua sisältöä tiedostoon. Rivinvaihto tapahtuu {{Näppäin|enter}}. Kirjoittaminen lopetetaan kirjoittamalla {{Näppäin|enter}} painamisen jälkeen aukeavalle riville vain piste ja painamalla {{Näppäin|enter}}: | ||
Rivi 75: | Rivi 75: | ||
Tiedoston viimeiseen riviin viitataan dollarimerkillä $. Siispä koko tiedoston sisältö tulostettaisiin komennolla | Tiedoston viimeiseen riviin viitataan dollarimerkillä $. Siispä koko tiedoston sisältö tulostettaisiin komennolla | ||
1,$p | 1,$p | ||
Myös negatiivisa rivinumeroita voidaan käyttää. Tällöin esimerkiksi -1 viittaa | Myös negatiivisa rivinumeroita voidaan käyttää. Tällöin esimerkiksi -1 viittaa toiseksi viimeiseen riviin, -2 kolmanneksi viimeiseen jne. Esimerkiksi kaksi viimeistä riviä tulostetaan komennolla | ||
-1,$p | -1,$p | ||
Rivi 197: | Rivi 197: | ||
Halutun rivin etsiminen on tärkeä ominaisuus. Haku onnistuu komennolla <tt>/hakusana/</tt>. Komento etsii ensimmäisen rivin jolta haettava sana löytyy, asettaa sen nykyiseksi riviksi (kts. .=) ja tulostaa kyseisen rivin sisällön. | Halutun rivin etsiminen on tärkeä ominaisuus. Haku onnistuu komennolla <tt>/hakusana/</tt>. Komento etsii ensimmäisen rivin jolta haettava sana löytyy, asettaa sen nykyiseksi riviksi (kts. .=) ja tulostaa kyseisen rivin sisällön. | ||
Tekstin etsiminen voidaan yhdistää tekstin korvaamiseen: seuraavassa haetaan seuraava rivi, jolta löytyy sana "Vim", asetetaan se (automaattisest) nykyiseksi riviksi ja korvaltaan kyseiseltä riviltä sana "Vim" sanalla " | Tekstin etsiminen voidaan yhdistää tekstin korvaamiseen: seuraavassa haetaan seuraava rivi, jolta löytyy sana "Vim", asetetaan se (automaattisest) nykyiseksi riviksi ja korvaltaan kyseiseltä riviltä sana "Vim" sanalla "ed": | ||
/Vim/s/Vim/ | /Vim/s/Vim/ed/gp | ||
Yhdistäminen toimii myös muiden komentojen kanssa, esimerkiksi löydettyä riviä seuraava rivi tulostetaan komennolla | Yhdistäminen toimii myös muiden komentojen kanssa, esimerkiksi löydettyä riviä seuraava rivi tulostetaan komennolla | ||
/Hakusana/+1 p | /Hakusana/+1 p | ||
Rivi 227: | Rivi 227: | ||
== Lista komennoista == | == Lista komennoista == | ||
Seuraavassa listassa on listattu | Seuraavassa listassa on listattu <tt>ed</tt>in komentoja ja selitetty mitä ne tekevät. Jos komennolle on mahdollista antaa rivi, josta käsittely alkaa, on komennon eteen merkitty (.). Jos komennolle voidaan antaa useammasta rivistä koostuva alue, on komennon eteen merkitty (.,.). Suluilla voidaan viitata myös muihin parametreihin. Suluissa olevat kohdat ovat vapaaehtoisia, jos niitä ei aseteta, komento vaikuttaa kyseisellä hetkellä valitulle riville. | ||
{| border="1" | {| border="1" | ||
Rivi 282: | Rivi 282: | ||
| u || Kumoa. Toimii seuraavien komentojen kanssa: a, c, d, g, G, i, j, m, r, s, t, v ja V. | | u || Kumoa. Toimii seuraavien komentojen kanssa: a, c, d, g, G, i, j, m, r, s, t, v ja V. | ||
|- | |- | ||
| (1,$)v/lauseke/komento || Aja | | (1,$)v/lauseke/komento || Aja <tt>ed</tt>in komento kaikille hakulausekkeeseen täsmääville riveille | ||
|- | |- | ||
| (1,$)V/lauseke/ || Sama kuin edellä mutta käyttäjältä kysytään joka rivillä suoritettava komento | | (1,$)V/lauseke/ || Sama kuin edellä mutta käyttäjältä kysytään joka rivillä suoritettava komento | ||
Rivi 307: | Rivi 307: | ||
== Aiheesta muualla == | == Aiheesta muualla == | ||
*[http://www.unix.se/Ed | *[http://www.unix.se/Ed <tt>ed</tt>-artikkeli] unix.se-wikissä (ruotsiksi), josta tämä artikkeli on osittain käännetty. [[Keskustelu:Ed|Lisätietoja]]. | ||
[[Luokka: Tekstieditorit]] | [[Luokka: Tekstieditorit]] | ||
[[Luokka:Komentorivin perustyökalut]] | [[Luokka:Komentorivin perustyökalut]] |