Emacsin peruskäyttö

Linux.fista
Versio hetkellä 24. marraskuuta 2007 kello 15.49 – tehnyt Heikki (keskustelu | muokkaukset) (välitallennus)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Emacs on monipuolinen tekstieditori, mutta sen käyttäminen voi aluksi tuntua vaikealta. Tässä artikkelissa tutustutaan Emacsin peruskäyttöön. Lisätietoja Emacsista löytyy artikkelista Emacs.

Tässä artikkelissa käsitellään Emacsin käyttöä komentoriviltä. Graafinen versio toimii yleensä samalla tavalla.

Aluksi

Emacsissa ei ole samalla tavalla erillistä komento- ja syöttötilaa kuten esimerkiksi Vimissä, vaan käynnistämisen jälkeen tekstiä voi kirjoittaa suoraan aukeavaan ikkunaan ja komennot annetaan näppäinyhdistelminä.

Komennot koostuvat toimintonäppäimestä ja itse komennosta, joka on yleensä myös vain yksi näppäin. Joskus näppäinyhdistelmällä avataan erillinen komentorivi, johon voidaan syöttää pidempiä komentoja.

Tässä artikkelissa käytetään myös Emacsin itsensä käyttämää tapaa näppäinyhdistelmien merkitsemiseen, eli esimerkiksi C-x tarkoittaa näppäinyhdistelmää Ctrl+x (eli sekä x:ää että Ctrl-näppäintä painetaan samaan aikaan) ja M-f tarkoittaa näppäinyhdistelmää Alt+f (tai ensin Esciä ja sitten f:ää). Lisäksi esimerkiksi C-x s tarkoittaa, että ensin painetaan näppäinyhdistelmä Ctrl+x ja sitten s:ää. Näppäinyhdistelmässä C-x C-f voi Ctrl-näppäintä painaa pohjassa samalla kun painaa ensin x:ää ja sitten f:ää.

Emacsissa voi samaan aikaan olla auki useampia tiedostoja ja ne voivat näkyä samanaikaisesti eri ikkunoissa. Tällöin kaikki toimenpiteet kohdistuvat aktiiviseen ikkunaan eli siihen, jossa kursori on sillä hetkellä.

Emacs käsittelee kaikkia tekstejä puskureissa (engl. buffer). Esimerkiksi auki olevan tiedoston sisältö on puskurissa, jonka nimi on tiedoston nimi.

Käynnistäminen

Emacs voidaan käynnistää yksinkertaisesti komennolla

emacs

Komennolle voidaan antaa parametrina avattavan tiedoston tiedostonimi ja myös kohta, josta tiedostoa aletaan lukemaan. Esimerkiksi seuraava avaisi tiedoston testi.txt ja siirtyisi suoraan tiedoston riville 13:

emacs +13 testi.txt 

Jos Emacs käynnistyy näin graafiseen tilaan ja sitä halutaan käyttää tekstitilassa, on käytettävä lisäksi valitsinta -nw:

emacs testi.txt -nw

Jos Emacsille annetaan tässä useampia tiedostoja, se avaa ne eri ikkunoihin, joista lisää myöhemmin.

Käynnistyksen jälkeen Emacs avaa tervetuloikkunan, jossa näkyy muutamia peruskomentoja, tiedot käytettävästä Emacsin versiosta yms. Tästä pääsee pois itse tiedostoon painamalla jotain näppäintä (esimerkiksi nuolia).

Tiedoston avaaminen, sulkeminen ja tallentaminen

Kun tiedostoon on tehty muutoksia, se voidaan tallentaa näppäinyhdistelmällä C-x s. Tällöin Emacs varmistaa tallentamisen näyttämällä ruudun alareunassa ilmoituksen

Save file /home/kayttaja/emacstesti? (y, n, !, ., q, C-r, d or C-h)

jolloin tiedosto voidaan tallentaa painamalla y:tä. Vastaavasti n:ää painamalla tiedostoa ei tallennetakaan.

Tiedosto voidaan avata näppäinyhdistelmällä C-x C-f. Tällöin Emacsin alareunaan ilmestyy teksti

Find file: ~/työhakemisto/

jossa avattava tiedosto voidaan hakea tiedostojärjestelmästä. Tiedostopolkua voidaan täydentää tabulaattorilla, ja sen painaminen toistamiseen listaa alkuosaan täsmäävät mahdollisuudet. Tiedostoon voidaan viitata möys sen täydellisellä tiedostopolulla kirjoittamalla se vain suoraan välittämättä valmiiksi ilmestyneestä työhakemiston polusta. Kun polun kirjoittaminen aloitetaan /-merkillä, Emacs jättää huomiotta automaattisesti lisäämänsä työhakemiston polun.

Tiedoston avaaminen - kuten muutkin komennot - voidaan keskeyttää näppäinyhdistelmällä C-g.

Emacs lopetetaan näppäinyhdistelmällä C-x C-c, jolloin Emacs kysyy jokaisen auki olevan tiedoston kohdalla, tallennetaanko se. Jos jonkin tiedoston (puskurin) sisältöä ei tallenneta, Emacs vielä varmistaa, että se halutaan varmasti lopettaa:

Modified buffers exist; exit anyway? (yes or no)  

jolloin kirjoittamalla yes Emacs lopetetaan eikä tallentamattomia puskureita tallenneta. no peruuttaisi sammuttamisen.

Toimitilat

Emacsilla ei ole suoranaisesti erillisiä komento- ja syöttötiloja, mutta silti siinä on eri toimitiloja. Tilat riippuvat muokattavan dokumentin tyypistä, ja Emacs tunnistaa tyypin yleensä tiedostopäätteen perusteella. Esimerkiksi .c-päätteisiä tiedostoja käsitellään C-kielisinä lähdekooditiedostoina ja .tex-tiedostoja LaTeX-tiedostoina. Toimitila vaikuttaa mm. siihen, rivittääkö Emacs tekstiä automaattisesti.

Toimitila näkyy ruudun alareunassa olevassa palkissa, joka voisi näyttää seuraavalta:

-uuu:---F1  emacsopas      15% L15    (Fundamental)------------------

Mikä tarkoittaisi sitä, että toimitilana on Fundametal, joka on yleinen tila tekstin kirjoittamiseen. Lisäksi siinä näkyy, että ollaan dokumentin rivillä 15 jota ennen on 15% dokumentista. Muokattavan tiedoston (puskurin) nimi on emacsopas.

Puskureista

Kuten aiemmin todettiin, kaikki tiedostot avataan erillisiin puskureihin. Oletetaan, että olemme käynnistäneet Emacsin normaalisti ilman parametreja, ja sitten avaamme C-x C-f -komennolla vuorotellen tiedostot testi1 ja testi2. Tällöin niistä jälkimmäisenä avattu (esim. testi2) jää nyt näkyviin, ja ensin avattu testi1 jää taustalle samannimiseen puskuriin. Nyt näiden välillä voi liikkua komennolla C-x b, jonka seurauksena alareunaan ilmestyy kysymys

Switch to buffer (default testi1):

Nyt puskuriin testi1 voitaisiin siirtyä painamalla enteriä. Johonkin muuhun puskuriin (esim. Emacsin oletuksena luomaan *scratch*-puskuriin) voisi siirtyä kirjoittamalla sen nimen ja painamalla enteriä. Puskureiden nimiä voi täydentää tabulaattorilla, joten niitä ei tarvitse kirjoittaa kokonaan.

Kaikki puskurit voi listata komennolla C-x C-b. Tämä jakaa ikkunan kahteen osaan, ja nykyisen dokumentin alle ilmestyy seuraavanlainen lista puskureista:

CRM Buffer                Size  Mode              File
. * test.tex               615  LaTeX             ~/temp/test.tex
    *scratch*              191  Lisp Interaction
    emacsopas             3836  Fundamental       ~/temp/emacsopas
  * *Messages*            1093  Fundamenta