JOT2012 Demo3-ohje
Sisällysluettelo
1 Ei Emacsia? Asennetaan…
Jos ei koneestasi löydy Emacsia, tai se on vain komentoriviversio, suosittelemme GUI-version asentamista.
- Windows: http://www.nic.funet.fi/pub/gnu/ftp.gnu.org/pub/gnu/emacs/windows/emacs-24.2-bin-i386.zip
- Mac OS X: http://emacsformacosx.com
- Linux: hae pakettihallintaohjelmalla Emacs-24, Emacs-23 tai käännä lähdekoodista
- Lähdekoodi: http://www.nic.funet.fi/pub/gnu/ftp.gnu.org/pub/gnu/emacs
Org-mode tulee jo Emacsin mukana, suosittelemme siksi Emacs-versiota 24. Org-moden uusin versio löytyy aina Org-moden omilta sivuilta (Veijo Google löytää). Org-mode dokumentaatio: http://orgmode.org/org.html
2 Emacs
Emacs on tekstimuokkain. Se on itsessään hyvin muokattava ja laajennettava editori, ja sisältää paljolti kaiken dokumentaation itsestään. Oikeastaan Emacs on oma, kokonainen ympäristönsä, jolla voi tehdä paljon siitä, mihin yleensä tulee käytettyä useaa eri ohjelmistoa. Erilaisia muokkauksia varten Emacsista löytyy moodeja, joita näin alkuun voidaan pitää eri työkaluina Emacsin sisällä, tai Emacsin laajennoksina. Esimerkkejä moodeista ovat eri ohjelmointikielten moodit, sähköpostimoodi ja WWW-selain moodi.
Emacs graafisella käyttöliittymällä.
Emacsia voi käyttää hiirellä kuin Notepadia konsanaan. Emacsin hyödyt
tulevat tosin esille vasta komentoja näppäimistöltä annettaessa,
hieman kuten Vimissä. Hankalinta onkin oppia näppäinkomentojen
antaminen. Jos esimerkiksi näppäinkomento on C-x C-c
, joka lopettaa
Emacsin, se annetaan painamalla ensin Ctrl
-näppäin alas, ja se
alaspidettynä näpäytetään peräkkäin x
ja c
. Jos taas
näppäinkomento on C-h t
, joka avaa Emacsin käytön tutoriaalin,
painetaan ensin Ctrl
-näppäin alas ja sitten h
, mutta ennen
t
-näppäimen painamista Ctrl
vapautetaan. Eli aika lailla samoin,
kuin vaikka Windowsin kopiointi-näppäinkomento toimii. Tosin jo
ensimmäisestä esimerkistä huomataan, etteivät Windowsin
näppäinkomennot välttämättä päde Emacsissa. Emacs on noin kahdeksan
vuotta Windowsia vanhempi ohjelmisto.
Muita Emacsin näppäinkomennoissa käytettyjä näppäimiä ovat S-
, eli
vaihtonäppäin (shift), sekä M-
eli meta-näppäin, jonka virkaa
täyttää yleensä <Esc>
, eli näppäimistön vasemman yläkulman
Escape
-näppäin. Meta löytyy myös Alt
tai Cmd
näppäimestä, tai
jostain siltä suunnalta. Valitettavasti tuo vaihtelee paljon, mutta
Escape
toimii yleensä. Tärkein meta-näppäily lienee M-x
, jonka
jälkeen Emacs pyytää kehoitteella komentoa. Tällä tavalla voi
korvata näppäilyjen käytön tai käyttää komentoja, joille ei ole
(vielä) määritelty näppäinkomentoja. Esimerkiksi M-x save-buffer <Ret>
vastaa näppäinkomentoa C-x C-s
. <Ret>
on tuossa Return
tai Enter
näppäin, siis rivinvaihto.
2.1 Käynnistys, lataus, tallennus, lopetus
Emacs käynnistyy komennolla emacs
, jonka jälkeen voi antaa
käynnistysoptioita tai tiedostopolkuja. Monesti tämä käynnistää vain
tekstiversion, mutta esim. Linuxissa käynnistyy graafinen versio. Jos
haluatte käynnistää vain tekstiversion, se tapahtuu komennolla emacs -nw
. Graafisen version saa käyntiin kullekin käyttöliittymälle
ominaisella tavalla, esim. Windowsissa Start-valikosta.
Käydäänpä läpi Emacsin näyttö, nyt tekstimoodissa. Ensin kuvaruudun
tai ikkunan ylälaidasta löytyvät valikot, jotka aktivoituvat joko
hiirellä tai F10
näppäimellä.
File Edit Options Buffers Tools Help
Sitten tulee varsinainen työalue. Käynnistyessään Emacs näyttää oletuksena pienen opetustekstin Emacsin kä(ytöstä. Lue se.
Welcome to GNU Emacs, one component of the GNU/Linux operating system. Get help C-h (Hold down CTRL and press h) Emacs manual C-h r Browse manuals C-h i Emacs tutorial C-h t Undo changes C-x u Buy manuals C-h C-m Exit Emacs C-x C-c Activate menubar M-` (`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key. If you have no Meta key, you may instead type ESC followed by the character.) Useful tasks: Visit New File Open Home Directory Customize Startup Open *scratch* buffer GNU Emacs 23.1.1 (x86_64-redhat-linux-gnu, GTK+ Version 2.18.9) of 2012-02-27 on x86-007.build.bos.redhat.com Copyright (C) 2009 Free Software Foundation, Inc. GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details. Emacs is Free Software--Free as in Freedom--so you can redistribute copies of Emacs and modify it; type C-h C-c to see the conditions. Type C-h C-o for information on getting the latest version.
Viimeisenä tulevat tilarivi ja viestirivi. Tilariviltä näet, missä tilassa Emacs on, kellonajan, jne. Tätä riviä voit itse muokata. Huomaa, että ainakin graafisessa versiossa voit myös muuttaa tiloja hiirellä klikkailemalla.
-UUU:%%--F1 *GNU Emacs* Top L1 (Fundamental)----9:39 0.10--------------- For information about GNU Emacs and the GNU system, type C-h C-a.
Viimeinen rivi on viestirivi, jossa näkyvät Emacsin *Messages*
puskuriin tulostuvat viestit. Jos Emacs kysyy syötettä, se myös
annetaan tällä rivillä. Jos käytät Puttyn läpi Emacsia, tai melkein
mitä muuta tahansa, ovat värit lähinnä karmeat. Se on Puttyn
ominaisuus, joskin Emacsistakin voit värejä vaihtaa.
Emacsiin voi ladata tiedostoja muokattavaksi näppäilyllä C-x C-f
.
Nyt on oltava tarkkana, ettei näppäile f
ilman Ctrl
-näppäintä,
sillä se käynnistää toisen komennon. Onnistuneen komennon annon
jälkeen Emacs kyselee tiedoston nimeä, jonka antaminen päätetään
<Ret>
, eli Return
tai Enter
näppäimen painamiseen, siis
rivinvaihtoon.
Varsinaisesti Emacsissa ei koskaan muokata tiedostoa, vaan puskuria,
jossa on tiedoston sisältö. Yleensä puskuriin liittyy jokin
tiedosto, muttei välttämättä. Puskurin sisällön voi tallentaa siihen
liittyvään tiedostoon näppäilyllä C-x C-s
, tai johonkin toiseen
tiedostoon näppäilyllä C-x C-w
.
Emacs lopetetaan näppäilyllä C-x C-c
. Jos puskureissa on
tallentamattomia tietoja, Emacs käy nämä läpi ja varmistaa
tallennetaanko tiedo vai ei.
2.2 Puskurissa ja puskureissa liikkuminen
Yleensä kursorinäppäimet toimivat liikkumisessa puskurin sisällä. Jos näin ei kuitenkaan ole, on käytössä seuraavat näppäinkomennot.
Komento | Siirtyminen |
---|---|
C-f , C-b | Yksi merkki eteen- tai taaksepäin. |
C-n , C-p | Seuraava tai edellinen rivi. |
M-f , M-b | Sana eteen- tai taaksepäin. |
Virke eteen- tai taaksepäin, jos virkkeen | |
päättävän pisteen jälkeen on kaksi välilyöntiä. | |
Kappale eteen- tai taaksepäin. | |
M-< , M-> | Puskurin alkuun tai loppuun. |
Vieritä näyttöä ylös- tai alaspäin. | |
C-x b | Siirry toiseen puskuriin (kysyy nimeä, TAB täydentää). |
C-x o | Näkymästä toiseen siirtyminen. |
2.3 Vim-apuja
Emacsia voi halutessaan käyttää Vim-editorin tavoin, ts. siten, että
Emacsia käytettäessä käytetäänkin Vim-komentoja. Tämä onnistuu
asentamalla Emacsiin evil mode
laajennos.
- Siirry jalavan kotihakemistosi juuresta kansioon .emacs.d, ts. anna
komento
cd .emacs.d
Jos sinulta ei löydy tällaista kansiota, luo se ensin kommennolla
mkdir .emacs.d
- Tämän jälkeen, ollessasi hakemistossa .emacs.d, asenna evil mode
kloonaamalla Git-varasto kommennolla
git clone git://gitorious.org/evil/evil.git
Sinulle syntyy tällöin evil-niminen alihakemisto .emacs.d-kansioon.
- Kerro vielä Emacsille, että haluat ottaa käyttöön evil-mode
-laajennoksen. Tämä tapahtuu lisäämällä kotihakemistossasi
sijaitsevaan .emacs-tiedostoon seuraavat rivit
(add-to-list 'load-path "~/.emacs.d/evil") (require 'evil) (evil-mode 1)
Yllä asetus
(evil-mode 1)
tarkoittaa sitä, että aina kun aukaistaan Emacs, se toimmii oletuksena Vimin tavoin. Tämän rivin voi jättää toki halutessaan pois, ja käynnistää Vim-laajennoksen Emacsista aina tarvittaessa komennollaM-x evil-local-mode
Tämän komennon voi sitoa kätevästi näppäimeen
F6
lisäämällä.emacs
-tiedostoon(global-set-key (kbd "<f6>") 'evil-local-mode)
Emacsia ei tarvitse käynnistää uudelleen, vaan voit mennä tuon rivin loppuun ja näppäillä
C-M-x
, siis Control-Alt-x tai Control-Cmd-x, ja Emacs suorittaa rivin koodin. NytF6
käynnistää ja lopettaa Evil-moodin.
2.4 Git ja Emacs
Emacsille on useitakin Git-moodeja, joilla gitin peruskäyttö onnistuu
Emacsin komennoilla. Mukana tuleva git-tuki on kovin vajavainen,
joten kannattanee ladata jokin muu git-liitos, esimerkiksi
http://philjackson.github.com/magit/index.html. Git-moodin käynnistää
komento git-status
, joka on hyvä sitoa johonkin näppäimeen, vaikka F12
,
luvun Vim-apuja lopun ohjein.
3 Editorikomennot
Seuraavassa joukko yleisimpiä toimintoja editoreissa, ja niiden näppäinkomennot Emacsissa ja Vimissä.
Emacs | Vim | Toiminto |
---|---|---|
C-x C-c | :q <enter> | Lopetus |
C-x C-f /nimi/ <ret> | :e /nimi/ <enter> | Lataa tiedosto nimi |
Jos tiedostoa ei ole, se luodaan. | ||
C-x C-s | :w <enter> | Tallenna tiedosto |
C-x C-w | :w nimi <enter> | Tallenna tiedostoon nimi |
C-x b | :n <enter> | Seuraava avoin tiedosto (Emacsissa puskuri) |
C-x k | Sulje nykyinen tiedosto (Emacsissa puskuri) | |
Vimin tekstieditointimoodin käynnistys | ||
i | - käynnistä kursorin kohdalle | |
A | - käynnistä rivin loppuun | |
o | - käynnistä lisäten rivi jälkeen | |
O | - käynnistä lisäten rivi ennen | |
<esc> | Paluu komentomoodiin. | |
C-g | C-c | Hylkää komento |
C-_ | u | Peru komento |
C-s | /kohde | Etsi seuraava kohde |
- Emacsissa inkrementaalinen | ||
- Vimissä säännöllinen lause | ||
M-x replace-string | :% s/mitä/miksi/g | Korvaa mitä tekstin miksi tekstiksi. |
- Emacsissa säännölliset lauseet | ||
M-x replace-regexp | ||
- Vimissä käytössä säännölliset lauseet. | ||
M-x | <esc>: | Anna kirjoitettu komento. |
M-: | Suorita Lisp-funktio. | |
C-h t | :help | Yleinen avustus ja opastus. |
C-h k <näppäily> | Näyttää avustuksen, mitä näppäily | |
tekee. | ||
M-x customize-emacs | :set <muuttuja>=<arvo> | Editorin asetusten muuttaminen. |
3.1 Kill, Yank & Paste – Leikkaa, kopioi ja liimaa Emacsilla
Tekstin kopiointi, leikkaus ja liimaus onnistuu seuraavaasti:
Emacs | Vim | Toiminto |
---|---|---|
C-<välilyönti> | v | Aloita alueen merkkaus (Vim visual mode) |
(Alueen loppumerkiksi riittää kursorin paikka) | ||
C-<välilyönti> | V | Aloita rivien merkkaus. |
C-<välilyönti> | C-v | Aloita nelikulmainen merkkaus. |
C-w | d | Leikkaa alueen (alueen merkkauksen lopussa) |
M-w | y | Kopioi alueen |
C-y | P | Liitä aluen ennen kursoria. |
p | Liitä alue kursorin jälkeen. | |
C-x r k | d | Leikkaa nelikulmainen alue. |
C-x r y | p | Liitä nelikulmainen alue. |
"Tutut" copy/paste-näppäilyt toimivat, | ||
jos "CUA" moodi päällä. Ei suositella! | ||
M-d | dw | Poista (leikkaa) sana. |
C-k | D | Poista (leikkaa) rivin loppuun. |
Tekstin erikoisempia muokkauskomentoja ovat mm. seuraavat:
Emacs | Vim | Toiminto |
---|---|---|
C-M-o | i<enter><esc> | Katkaise rivi kursorin kohdalta. |
C-n M-^ | J | |
M-q | gq} | Tasaa kappale |
M-z | dfX | Poista kirjaimeen X asti. |
<f3> tai C-x ( | qX | Aloita makron nauhoitus (Vimissä |
rekisteriin X). | ||
<f4> tai C-x ) | q | Lopeta makron nauhoitus. |
<f4> tai C-x e | @X | Suorita Emacs viimeisin, |
Vim rekisterin X makro. |
Ja lisää löytyy, paitsi editorien dokumentaatiosta, linkeistä http://karl-voit.at/vim-emacs-cheatsheet_of_freezing_hell.txt ja http://www.elmindreda.org/emacs.html.
4 Org-mode
Org-mode on Emacsin mukana tuleva laajennos1, joka on alunperin tehty tiedon ja toiminnan organisointiin, eli muistioiden kirjoittamiseen ja kalenterin hallintaan. Tässä se on omiaan, mutta tutustumme demoissa enemmän Org-moden toiseen puoleen, dokumenttien generointiin.
Org-modella on helppo tehdä rakenteisia dokumentteja yksinkertaisella syntaksilla, jonka saa Emacsissa muutettua sitten pelkäksi tekstiksi, HTML:ksi ja vaikka LaTeX-taiton avulla PDF:ksi. Muitakin vientimahdollisuuksia on, ja itse voit tehdä lisää.
Org-modea käytetään myös toistettavan tutkimuksen raporttien ja valistavan ohjelmoinnin parissa. Tästä löytyy hyvin kuvaava artikkeli osoitteesta http://www.jstatsoft.org/v46/i03, jota suosittelemme luettavaksi, mikäli haluat oppia käyttämään Org-modea monipuolisemmin.
Kaikki demojen materiaali on kirjoitettu Org-modella. Org-tiedostot
löytyvät korvaamalla tiedostopääte päätteellä .org
.
4.1 Org-dokumentin rakenne
Alla on esimerkki org-mode dokumentin rakenteesta.
#+TITLE: Otsikko * Eka taso ** Toka taso Lorem ipsum hipsum tipsum... *** Kolmas taso Kettu loikki yli - järven, - kiven tai - kannon.
Org-mode käyttää puurakennetta, missä puun haarautuminen esitetään
asteriskeilla *
. Voidaan ajatella, että asteriskien määrä kertoo
otsikon tason aivan kuten <Hn>
tagi HTML:ssä. Tiedostoa voi
muokata suoraan, mutta myös tasoittain.
Seuraava esimerkki esittelee hieman rikkaamman org-dokumentin.
1: #+TITLE: Otsikko 2: 3: * Eka taso <2012-08-15 Wed> 4: CLOCK: [2012-08-17 Fri 11:00]--[2012-08-17 Fri 11:15] => 0:15 5: ** DONE [#A] Toka taso :foo:bar: 6: CLOSED: [2012-08-17 Fri 11:02] DEADLINE: <2012-08-20 Mon> 7: Lorem ipsum hipsum tipsum 8: *** TODO Kolmas taso :foo: 9: SCHEDULED: <2012-11-17 Sat> 10: :PROPERTIES: 11: :Luokka: Luontohavainto 12: :Havaitsija: Meeri Metsänkävijä 13: :END: 14: Kettu loikki yli 15: - [X] järven, 16: - [ ] kiven tai 17: - [ ] kannon. 18:
Esimerkissä näkyy paljon päiväyksiä. Org-mode antaa työkalut näiden
luomiseen ja muokkaamiseen. Päiväyksiä voi syöttää näppäinkomennolla
C-c .
, joka aukaisee kolmen kuukauden kalenterin sisältävän
puskurin. Syöttöriville tulee kehoite päivämäärän syötöstä, ja
oletuksena on nykyinen päivä. Päivän voi valita kalentereista,
kirjoittaa uuden, tai sitten antaa muutoksen nykyisestä päiväyksestä.
Esimerkiksi syöte +3d
antaa päiväyksen kolme päivää tämänhetkisen
päiväyksen jälkeen. Määräajan asetus muokattavalle otsikolle annetaan
näppäinkomennolla C-c s
. Määräajat ilmestyvät
SCHEDULED
-tarkenteella otsikon alle. Takarajat saa syötettyä
näppäilemällä C-s d
, ja ne ilmestyvät myös otsikon alle
DEADLINE
-tarkenteella. Näistä lisää kappaleessa Org-mode ja ajanhallinta.
Esimerkissä on myös käytetty TODO
- ja DONE
-tarkenteita riveillä 5
ja 8. Näillä voidaan seurata ja ohjata työnkulkua. Voit myös
määritellä omia, vastaavia tarkenteita. Tarkenteiden tilaa voi
vaihtaa näppäinkomennolla S-<oikea>
ja S-<vasen>
. Kohtia voi myös
priorisoida, kuten rivin 5 merkintä [#A]
näyttää. Näitä voi myös
muokata, ja vaihto tapahtuu näppäilyillä S-<ylös>
ja S-<alas>
.
Lisätietoa löytyy jälleen kappalleesta Org-mode ja ajanhallinta.
Otsikot voi myös merkata tageilla, jotka näkyvät rivin lopussa
kaksoispisteellä eroteltuna. Näppäily C-c C-c
otsikkorivillä
käynnistää tagimuokkaimen. Tageja hienompia metatietoja voi antaa
otsikon perässä tulevaan laatikkoon, joka on merkattu :PROPERTIES:
… :END:
merkinnöillä. Kullakin rivillä on yksi tieto, ensin nimi
ympäröitynä kaksoispisteillä, sitten arvo, joka päättyy rivin
loppuun.
Kaikkia näitä metatietoja voi käyttää esimerkiksi org-dokumentin näkymän rajoittamiseen, tiedon esittämiseen kalenterissa tai tapahtumalistauksena, tai Org-moden toiminnan säätelyyn. Niiden sisältämää tietoa voi myös käsitellä ohjelmallisesti tai laskennallisesti, vaikkapa työtunteja laskemalla. Esimerkkejä tulee myöhemmissä kappaleissa.
Kannattaa koko ajan muistaa, että org-dokumentit ovat ulkonäöstään huolimatta pelkkää tekstiä, ja siten luettavissa ja muokattavissa muillakin editoreilla.
4.1.1 Sarakemoodi
Helpomman muokkauksen saa päälle sarakemoodilla, joka aktivoituu
näppäilemällä C-c C-x C-c
. Tiedosta toiseen siirtyminen tapahtuu
kursorinäppäimillä ja tiedon muuttaminen S-<vasen>
ja S-<oikea>
,
C-c C-c
vaihtaa valintalaatikon arvon, numerot 0..9
valitsevat
mahdollisen arvon, e
muokkaa arvoa, r
ja g
päivittävät muutokset
ja q
poistaa sarakemooditilasta.
4.2 Rakenteen muokkaus
Tärkeimmät näppäinkomennot lienevät <TAB>
ja S-<TAB>
. Pelkkä
<TAB>
vaihtaa alipuun näkyvyyttä, onko puu supistettuna
pääotsikoihin, näkyvätkö alkiotsikot vai näkyykö kaikki. Näppäilyllä
S-<TAB>
taas vaikutetaan koko dokumentin näkyvyyteen vastaavasti.
Org-tiedostossa voi liikkua nopeammin taulukon
org-dokumentissa-liikkuminen esittämillä komennoilla.
Komento | Kuvaus |
---|---|
<C-c> <C-n> / <C-c> <C-p> | Seuraava tai edellinen otsikko. |
<C-c> <C-f> / <C-c> <C-b> | Seuraava tai edellinen samantasoinen otsikko. |
<C-c> <C-j> | Hyppää kohteeseen … |
Kappaleita voi editoida otsikkotasolla mm. taulukon kappaleen-liikutus kuvaamilla komennoilla. Taulukossa on myös kuvattu joukko muita editointikomentoja.
Komento | Kuvaus |
---|---|
M-<ylös> / M-<alas> | Siirrä alipuuta ylös tai alas. |
M-<vasen> / M-<oikea> | Nostaa tai laskee elementin tasoa. |
S-M-<vasen> / S-M-<oikea> | Nostaa tai laskee alipuun tasoa. |
M-<RET> | Luo uusi, samantasoinen otsikko. |
Rivin alussa muuttaa rivin otsikoksi. Rivin | |
keskellä jakaa rivin ja tekee lopusta | |
otsikon. | |
C-<RET> | Sama kuin edellä, muttei yritä arvata |
liikaa, vaan aloittaa vain uuden otsikon. | |
M-S-<RET> | Sama kuin M-<RET> edellä, mutta lisää |
otsikon eteen TODO -tarkenteen. | |
C-S-<RET> | Kuten edellä, mutta toimii kuin C-<RET> . |
Kaikista kuormitetuin näppäimistökomento lienee kuitenkin C-c C-c
,
joka tekee, tilanteesta riippuen, vaikka mitä. Otsikkorivillä se
käynnistää tagien muokkauksen. Taulukossa se sovittaa taulukon
ulkoasun tekstiin. Se päivittää hyperlinkkejä, alaviitteitä, tai
vaihtaa valintalaatikoiden tilan. Paljon muutakin se tekee ja näitä
on selitelty pitkin tekstiä. Yleensä kannattaa kokeilla sitä, jos ei
tiedä, mitä muuta voisi kokeilla.
4.3 Tekstin korostus
Tekstin korostus tapahtuu org-modessa ympäröimällä korostettava teksti korostusmerkeillä, kuten taulukossa korostus on esitetty.
Notaatio | Tulostuu |
---|---|
*lihavoitu* | lihavoitu |
/kursivoitu/ | kursivoitu |
_alleviivattu_ | alleviivattu |
=koodiesimerkki= | koodiesmerkki |
~kirjaimellinen~ | kirjaimellinen |
4.4 Linkitys
Linkit on merkitty org-dokumentissa hakasulkeilla:
[[kohde][tarkenne]]
missä kohde
on kohteen tunniste ja tarkenne
lyhyt, näkyvä kuvaus
linkille. Linkkejä on helppo lisätä näppäilemällä C-c C-l
. Linkin
kohde voi olla org-dokumentin sisällä tai ulkopuolella. Esimerkiksi
URI toimii hyvin kohteena, samoin vaikkapa sähköpostin tunniste.
Org-dokumentin sisälle viitatessa voi kohteeksi antaa otsikon
sisällön, jolloin linkki osoittaa kyseiseen otsikkoon. Muualle
org-mode sisällä viitatessa tulee käyttää ankkureita. Ankkurit
merkitään <<kohde>>
ja niitä voi olla kaikkialla tekstissä.
Erikoisempia ovat radiokohteet, jotka merkitään <<<radiokohde>>>
Näissä sisällä oleva teksti aktivoituu linkiksi kaikkialla dokumentin
sisällä, eli tuolla ylläolevalla määrittelyllä jokainen /radiokohde/
sana muuttuisi linkiksi tuohon ankkuriin. Nämä linkit voi päivittää
näppäilemällä linkin päällä C-c C-c
.
Linkkiä voi seurata hiirellä tai näppäilyllä C-c C-o
. Jos linkki on
dokumentin sisäinen, pääsee kohteesta takaisin näppäilyllä C-c &
--
tätä voi myös hyödyntää muualla merkkaamalla paikan C-c %
näppäilyllä, jolloin C-c &
palaa siihen takaisin. Näppäilyt C-c C-x C-n
ja C-c C-x C-p
siirtävät kohdistimen seuraavaan tai
edeltävään linkkiin.
4.5 Org-mode ja taulukot
Yksi hienoimmista ominaisuuksista Org-modessa on sen tapa käsitellä taulukoita. Taulukko kirjoitetaan seuraavasti:
| A | B | C | |---+---+----| | 2 | 3 | 5 | | 3 | 4 | 7 | | 5 | 7 | 12 | #+TBLFM:
Taulukon luominen ja muokkaaminen on helpompaa kuin miltä näyttää.
Tarvitsee vain kirjoittaa ensimmäinen rivi ja näppäillä C-c <RET>
,
niin Org-mode tekee taulukon lopun. Rivin viimeisessä sarakkeessa
<TAB>
luo uuden rivin ja siirtää kohdistimen sen ensimmäiseen
sarakkeeseen, muuten <TAB>
siirtää kohdistimen seuraavaan
sarakkeeseen, S-<TAB>
edelliseen. <RET>
luo uuden rivin ja vaihtaa
kohdistimen sille samaan sarakkeeseen, kuin missä näppäintä
painettiin. Kursorinäppäimet meta-näppäin pohjassa muuttavat
sarakkeiden ja rivien järjestystä. Uuden rivin tai sarakkeen saa
näppäilyllä M-S-<alas>
ja M-S-<oikea>
, kun taas M-S-<vasen>
ja
M-S-<ylös>
poistavat sarakkeen tai rivin. Olemassa olevasta
taulukkomaisesta tekstistä saa Org-moden ymmärtämän taulukon
valitsemalla sen ja näppäilemällä C-c |
. Org-mode tukee myös
Emacsin table.el-moodin taulukoita. Valitettavasti näitä voi käyttää
vain tiedon taulukkomaiseen esittämiseen, kun taas Org-moden omat
taulukot taipuvat hienoiseen taulukkolaskentaankin.
4.5.1 Org-table ja taulukkolaskenta
Org-moden taulukot voivat sisältää myös laskentakaavoja seuraavaan tapaan:
| A | B | Summa | |---+---+-------| | 2 | 3 | 5 | | 3 | 4 | 5 | |---+---+-------| | 5 | 7 | 10 | #+TBLFM: $3=$1+$2::@4=vsum(@2..@3)
Kaavat voidaan kirjoittaa suoraan soluihin, tai erilliselle riville,
kuten yllä. Laskennan voi suorittaa uudelleen näppäilyllä C-c *
.
Solujen viitteet saa näkyville ja pois näppäilyllä C-c }
. Kaavojen
sisältö voi olla joko Emacsin calc-moodin ymmärtämässä muodossa tai
sitten Emacs Lispillä kirjoitettuja. Näin voi esimerkiksi kutsua
Emacs Lispillä tehtyä funktiota, joka annettujen solujen sisällön
perusteella käy hakemassa tietoa halutusta tietokannasta, käsittelee
tiedon toisella palvelimella ja palauttaa tiedon solun arvona.
Vapise, Excel!
4.6 Org-mode ja ajanhallinta
Org-modessa voi otsikoille määritellä ajankohdan (C-c C-s
) tai
aikarajan (C-c C-d
). Org-mode osaa näyttä tiedot näiden kenttien
avulla aikajärjestyksessä tai kalenterissa. Komennolla M-x org-agenda
voi generoida esimerkiksi kuluvan viikon tapahtumalistan
tai editoidun puskurin aikajanan. Tarvittaessa aikoja voi myös
kasvattaa (S-<ylös>
) ja vähentää (S-<alas>
), esimerkiksi
aikaleimassa päivän 28 kohdalla kasvattaminen muuttaa
päiväykseksi . Jos muokkaat aikaleimaa käsin, C-c C-c
sen sisällä muuttaa sen validiksi. Pelkän aikaleiman saa
lisättyä tekstiin näppäinkomennolla C-c .
, joka käynnistää
kalenteriselaimen ja kehotteen. Kehotteeseen voi ajan lisäksi syöttää
vaikkapa +2d
, jolloin aikaleimaksi tulee aika kahden päivän päästä
aikaleiman tekohetkestä.
Org-modesta löytyvät myös kellot, joiden avulla voi mitata
esim. tehtävään käytettyä aikaa. Kello käynnistetään komennolla C-c C-x C-i
, ja sammutetaan komennolla C-x C-c C-o
. Tällöin lähimpään
otsikkoon lisätään CLOCK:
-kenttä, siihen alku- ja loppuaika, sekä
näiden erotus, eli tapahtuman kesto. Luonnollisesti edellä mainitut
muokkauskomennot toimivat näillekin ajoille, ja kesto lasketaan aina
uusiksi muutoksen jälkeen. Jos se sattuu jäämään päivittymättä, C-c C-c
aikaleimassa korjaa taas tilanteen.
Komennolla C-c C-x C-d
kunkin alipuun sisältämät aikaleimat
lasketaan ja näytetään otsikoiden yhteydessä. Komennolla C-c C-x C-r
generoituu dynaaminen lohko, joka sisältää koosteen halutun
alueen aikaleimoista. Taulu päivittyy taas näppäilemällä C-c C-c
lohkon aloitusrivillä. Tämän taulun tieto riittää vaikka projektin
ajanseurantaan.
Alla esimerkki yksinkertaisesta tällaisesta lohkosta:
#+BEGIN: clocktable :maxlevel 3 :scope subtree Clock summary at [2012-08-27 Mon 15:59] | Headline | Time | | | |--------------------------+--------+---+------| | *Total time* | *1:00* | | | |--------------------------+--------+---+------| | Org-mode ja ajanhallinta | | | 1:00 | #+END:
Ja tässä siitä generoitunut taulu:
Clock summary at
Headline | Time | ||
---|---|---|---|
Total time | 1:00 | ||
Org-mode ja ajanhallinta | 1:00 |
4.7 Org-dokumenttien julkaisu
Org-modella tehdyt dokumentit voi muuttaa tai julkaista myös useissa
muissa formaateissa. Ajanhallinnan yhteydessä sivuttiin jo
org-dokumentin muuttamista TaskJugglerin ymmärtämään muotoon.
Seuraavassa on lueteltu esimerkkejä muista, yleisimmistä,
muutostoiminnoista. Kaikki muokkaus- ja julkaisutoiminnot löytyvät näppäilyllä C-c C-e
.
4.7.1 Teksti: ASCII, Latin-1 ja UTF-8
Vaikka org-dokumentit ovat varsin luettavia muotoilukomentoineen, tulee joskus tarve muuttaa org-dokumentti puhtaaseen teksti-muotoon. Tähän on tarjolla kolme vaihtoehtoa:
C-c C-e a
muuttaa dokumentin ASCII:ksi. Tämä on yleensä huono idea, sillä ASCII-merkistö on kovin vajaa, eikä sisällä esim. meille tuttuja skandinaavisia å, ä ja ö kirjaimia.C-c C-e n
muuttaa dokumentin Latin-1 kirjaimistoon, jolloin skandinaavitsetkin kirjaimet löytyy. Jos on pakko, käytä tätä.C-c C-e u
muuttaa dokumentin UTF-8 kirjaimistoon. Tämä on suositeltava vaihtoehto, sillä se mahdollistaa käytännössä kaikkien maailman kirjainten käytön (poislukien klingon).
Jos korvaat viimeisen kirjaimen näppäinkomennossa isolla kirjaimella, saat tuloksen väliaikaispuskuriin. Muuten tiedosto tallentuu samaan hakemistoon org-dokumentin kanssa.
4.7.2 HTML
Org-dokumentin voi muuntaa myös HTML:ksi komennolla C-c C-e h
, jonka
variantti C-c C-e b
myös avaa selaimen ja näyttää muunnetun
dokumentin siinä. Tekstimuotoilut, linkit, kuvat, jne. muunnetaan
automaattisesti HTML-muotoon. Org-dokumenttiin voi myös lisätä
tarkenteita, jotka ohjaavat HTML-muunnosta. Org-dokumentin sekaan voi
kirjoittaa suoraan muunnoksen läpi menevään HTML-tekstiä seuraavasti:
#+BEGIN_HTML Välissä oleva teksti siirtyy <em>suoraan</em> HTML:nä. #+END_HTMLTämä esimerkki näkyy vain HTML-muotoon viedyssä dokumentissa. Välissä oleva teksti siirtyy suoraan HTML:nä.
Taulukoille ja kuville voi antaa kuvaavan tekstin seuraavan esimerkin mukaan. Esimerkki näyttää myös, miten sisälletyt kuvat lisätään org-dokumenttiin ja HTML-muunnoksiin.
#+CAPTION: Puussa istuva kissa. #+ATTR_HTML: alt="kissa puussa" align="right" [[file:kissa-puussa.png]]
Jos tiedostosi kieli on suomi, kannattaa org-tiedoston alkuun lisätä
#+LANGUAGE: fi
jolloin otsikoiden ja metatietojen tunnisteet tulevat suomeksi, esim. teksti sisällysluettelo eikä contents sisällysluettelon alussa.
4.7.3 PDF ja LaTeX
Jos tietokoneestasi löytyy LaTeX-taittojärjestelmä, saat
org-dokumenteista helposti PDF-muotoisia komennolla C-c C-e l
, ja
komennolla C-c C-e d
Org-mode sekä taittaa että näyttää PDF:n.
LaTeX-muunnoksen ohjauksen tärkein muooto lienee LaTeX-tiedoston
ohjauskomentojen lisäys, esim. tämänkin tiedoston alusta löytyvä
#+LaTeX_CLASS_OPTIONS: [a4paper,finnish] #+LaTeX_HEADER: \usepackage{babel}[finnish]
joka asettaa taiton kohdepaperin mitat (A4) ja ottaa käyttöön suomenkieliset otsikoinnit ja tavutuksen.
Taulukoille ja kuville toimii sama CAPTION
tarkenne, joka
selitettiin HTML-muunnoksen yhteydessä.
5 Harjoitus
Hae demokansiosta tiedosto harkka.org, joka on org-pohja
harjoitustyölle. Lisää se omaan harjoitustyövarastoosi. Siirrä
nykyinen harjoitustyösi sisältö org-pohjaan ja muokkaa sitä org-modea
käyttäen. Harjoitustyön eri vaiheet voivat toki olla eri tiedostoissa
(esim. vaihe1.org
, vaihe2.org
, …)
Jos haluatte Emacsin automaattisesti rivittävän tekstin, laittakaa
päälle auto-fill-mode
, eli antakaa komento M-x auto-fill-mode
,
missä M-x
tarkoittaa windowsissa Alt-x
ja Macissä Cmd-x
.
Tämän komennon voi käydä lisäämässä .emacs-tiedostoon, kuten Evilin asennusohjeissa yllä on kuvattu. Kirjoita silloin .emacs-tiedostoon rivi
(auto-fill-mode t)
Kappaleen voi rivittää automaattisesti komennolla M-q
.
Alaviitteet:
1 Org-moden uusin versio ja paras opas löytyvät osoitteesta http://www.orgmode.org.