Tämä opas kuvaa Emacs-editorin peruskäytön: tekstin kirjoittaminen ja yksinkertainen editointi. Lisäksi käsitellään meilin ("sähköpostin") ja nyysien ("uutisryhmien") käyttöä Emacsilla. Opas on alun perin kirjoitettu Emacsin Unix-versiota varten, mutta suurin osa asioista on riippumatonta siitä käyttöjärjestelmästä, jossa Emacsia käytetään.
Tämä opas on johdatus Gnu-Emacs-editorin käyttöön.
Opas on tarkoitettu lukijalle, joka tuntee käyttämänsä tietokonejärjestelmän käytön alkeet. Jos kyseessä on Unix, riittää osata yhteydenotto, komentojen antaminen, muutama peruskomento yms.; tarvittaessa voi tällaisia asioita opiskella Unix-oppaasta.
Oppaassa kuvataan Emacsin käytön keskeiset piirteet kuten tavallisimmat editointikäskyt. Lisäksi selostetaan, miten saa tietoja kehittyneemmistä piirteistä, ja kuvataan muutamia erityisiä toimintoja (mm. meili ja nyysit) Emacsin alaisuudessa.
Opas on alkujaan laadittu Unix-ympäristössä ja Unix-käyttöä varten, ja se vastaa suunnilleen Emacsin versiotasoa 19. Emacs on saatavissa myös Windows-ympäristöön versiona 20, jonka käyttöliittymä on osittain erilainen kuin tässä kuvattu, mutta perustoimintojen pitäisi muuten onnistua tässä oppaassa esitetyillä tavoilla.
Oppaan selaamiseen ei tarvita mitään apuvälineitä, mutta ryhdyttäessä perusteellisesti opettelemaan kannattaa jokaista käskyä kokeilla erikseen eli opasta on paras lukea päätteen ääressä. Kun perusasiat ovat tulleet selviksi, käy läpi Emacsin oma tutorial-ohjelma.
Saatavan on myös tämä opas yhtenä tiedostona.
Aluksi ei kannata lukea koko opasta, sillä tietojen jäsentäminen vie oman aikansa. Sopivan aloituskokonaisuuden, oppaan perusosan, muodostavat luvut 1 - 6, jotka kannattaa käydä läpi järjestelmällisesti:
Luvut 7 - 10 muodostavat jatko-osan. Näitä lukuja, joista kukin muodostaa oman suhteellisen itsenäisen kokonaisuutensa, voit lukea myöhemmin tarpeidesi ja kiinnostukseksi mukaan. Niissä kerrotaan
Jos kuitenkin olet aloittelija ja sinulla on kiire päästä tekemään Emacsilla aivan yksinkertaisia asioita, niin
Jos oppaan luettuasi tunnet tarvitsevasi lisää tietoja Emacsin monipuolisemmista käyttömahdollisuuksista, voit lukea niitä Emacsin infopuusta (tässä oppaassa luvussa 6.4 kuvattavalla tavalla).
Esitettäessä käskyjä, virheilmoituksia tms. käytetään tässä oppaassa
normaalista poikkeavaa kirjasinlajia, esimerkiksi
emacs foo
.
Emacsissa käskyt alkavat kontrolli- tai muulla erikoismerkillä. Niiden esittämiseen käytämme seuraavia merkintöjä:
Muista näppäimistä käytetään usein englanninkielisiä lyhenteitä:
Tällä oppaalla on pitkähkö historia. Sen esimuotoja olivat Tera Palovuoren kirjoittama Aloittelijan Emacs-opas ja Joanna Ojan kesällä 1991 kirjoittama aineisto. Myöhemmin etenkin Sanna Suominen kirjoitti lisää materiaalia. Ylläpito siirtyi Jukka Korpelalle, joka pyrki kirjoittamaan aineiston yhtenäiseen asuun. Toukokuussa 2001 hän päivitti ja muokkasi sen osaksi sivustoaan Datatekniikka ja viestintä. Vrt. Unix-oppaan kohtaan Oppaan historia ja muuta selittelyä.
Emacs on monipuolinen editori eli ohjelma, jolla voi paitsi kirjoittaa ja korjailla tekstejä myös esim. etsiä tekstistä haluttua merkkijonoa taikka tehdä automaattisesti suhteellisen mutkikkaitakin muutoksia tekstiin.
Käsiteltävä teksti voi olla esimerkiksi
Jos tekstinkäsittelyssä tarvitaan esimerkiksi tekstin tasausta ja automaattista tavutusta taikka useita erilaisia kirjasimia, kannattaa Emacsin asemesta yleensä käyttää jotakin mikrotietokoneille saatavissa olevaa tekstinkäsittelyohjelmaa (esim. Microsoft Word).
Emacsissa on erilaisia toimintatiloja eli moodeja erityyppisten tekstien käsittelyä varten. Emacs osaa esimerkiksi avustaa Fortran- tai C-kielellä kirjoitettavan ohjelman siistissä sisentämisessä. Emacs ei kuitenkaan osaa avustaa esim. tavuttamisessa tai suomenkielisen tekstin oikeinkirjoituksen tarkistamisessa.
Emacsin käytön alkeet oppii nopeasti. Toisaalta käyttäjä voi tarpeidensa kasvaessa ja taitojensa lisääntyessä monin tavoin sovittaa Emacsia erilaisiin käyttötarkoituksiin.
Emacsilla voi jakaa kuvaruudun kahteen tai useampaan osaan, ikkunaan, joiden avulla voi käsitellä samanaikaisesti useampia tekstejä. Tekstistä toiseen kopioiminen ja tekstialueiden liikutteleminen paikasta toiseen on helppoa.
Emacs on muutakin kuin pelkkä editori. Emacsin käskyillä voi käynnistää Emacsin sisäisiä ohjelmia tai antaa komentotulkin suoritettaviksi komentoja. Esimerkkeinä tällaisista toiminnoista kuvataan tämän oppaan luvuissa 6 - 9 infopuun tietojen lukeminen, meilin ja nyysien käyttö, komentojen antaminen ja hakemiston editointi.
Aloitettaessa voi ikkunassa näkyä Emacsin versionumero ja tekijänoikeutta koskeva ilmoitus. Teksti katoaa painettaessa mitä tahansa näppäintä. Aluksi kuvaruutu siis voi näyttää seuraavantapaiselta (tyhjä tila esitetään tässä todellista pienempänä):
GNU Emacs 18.57.16 of Mon Jul 1 1991 on batman.hut.fi (berkeley-unix) Copyright (C) 1990 Free Software Foundation, Inc. Type C-h for help; C-x u to undo changes. ('C-' means use CTRL key.) GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details You may give out copies of Emacs; type C-h C-c to see the conditions. Type C-h C-d for information on getting the latest version. Type C-h t for a tutorial on using Emacs.
----Emacs: *scratch* (Lisp Interaction) ----All----------
Näyttö voidaan jakaa yhteen tai useampaa ikkunaan, joissa voi olla eri tekstejä tai saman tekstin eri kohtia. Jos sama teksti on esillä useammassa ikkunassa, niin ikkunoissa on saman puskurin (buffer) sisältö ja yhdessä ikkunassa tehty toiminto näkyy muissakin ikkunoissa.
Ikkunoita voi jakaa joko pysty- tai vaakasuoraan. Vaakasuorat ikkunat erottuvat toisistaan tilariveillä ja pystysuorat ikkunat katkoviivalla. Usean pienen ikkunan hahmottaminen on kuitenkin hankalaa, joten kerralla kannattaa tyytyä pariin kolmeen ikkunaan.
Se ikkuna, jossa kursori sijaitsee, on ns. valittu ikkuna. Käskyt kohdistuvat valittuun ikkunaan.
Seuraavassa on kuva kahteen osaan jaetusta ikkunasta. Ylemmässä ikkunassa näkyy alkuosa leikillisestä ohjetekstistä, alemmassa ikkunassa erään C-kielisen ohjelman alku.
How to program in 'C' - addendum 1) Rewrite standard functions and give them your own obscure names. 2) Use obscure, proprietary, non-portable, compiled library packages so that you never have to move from the platform you love so well. 3) Use very descriptive comments like /* printf("Hello world\n"); */ before each function call 4) REMEMBER - Carriage returns are for weenies.
----Emacs: ohjeet (Fundamental)----Top--------------------
/* Alkulukujen laskenta Eratostheneen seulalla. */ /* Yksinkertainen perusversio. */ #include <stdio.h> #define N 1000 char jaollinen[N+1]; /* Laskennan lopussa jaollinen[i] on 1 tai 0 sen mukaan, onko i alkuluku vai ei. Huomaa, että taulukko nollautuu alussa, koska se on globaali. */
----Emacs: eratos.c (C)----Top----------------------------
Puskurin sisältöä voi olla näkyvissä kuvaruudulla tai puskuri voi olla kokonaan taustalla. Puskurista toiseen siirtyminen ei hävitä puskuria tai sen sisältöä.
Jos Emacs ei tunnista käskyä tai ei voi muusta syystä suorittaa sitä, niin Emacs antaa äänimerkin tai väläyttää ruutua ja kenties tulostaa käskyriville virheilmoituksen.
Usein käskyt, joiden suorittaminen kestää pitkään,
tulostavat käskyriville kolmeen pisteeseen ...
päättyvän viestin, jotta käyttäjä
tietää odottaa. Suorituksen päätyttyä Emacs
tulostaa perään sanan done
.
Jos jokin käsky tarvitsee argumentin, esim. tiedoston, puskurin tai funktion nimen, niin Emacs tulostaa tätä koskevan kehotteen käskyriville.
Seuraavassa esimerkissä käyttäjä on antanut käskyn
C-x C-f (lue tiedosto ja sijoita se uuteen puskuriin). Tämän
jälkeen Emacs odottaa haettavan tiedoston nimeä
käskyrivillä siten, että se on tulostanut tiedostonnimen
oletusarvoisen alkuosan. Jos käyttäjä haluaa antaa
hakemistossa ~/mail
olevan tiedoston nimen, hän voi kirjoittaa
varsinaisen nimen näkyvissä olevan alkuosan perään.
Kuvaruudun alareunassa tilanne näkyy seuraavasti:
--**-Emacs: foobar (Text Fill) ---All---
Find file: ~/mail
Jos käsky on kesken kirjoittamisen tai kesken suorituksen, sen voi
vielä perua painamalla C-g:tä. Emacs kilauttaa kelloa ja
kirjoittaa käskyriville Quit
.
Esimerkki tilarivistä:
--**-Emacs: testi.doc (Text Fill) ---All----------
**
) kertovat, että puskuria on muutettu
testi.doc
, joka on myös puskurin nimi
Text
)
All
)
--CH-Emacs: BUFFER (MAJOR MINOR) --SIJ--
**
, jos puskurin sisältöä on muutettu, ja %%
, jos
puskuria voi vain lukea, muttei kirjoittaa.BUFFER on puskurin nimi, yleensä käsiteltävän tiedoston nimi.
MAJOR tarkoittaa päätoimintatilaa, jolla
määrätään puskurin ominaisuudet eli
käsitelläänkö esim. tekstiä vai C-kielistä
ohjelmakoodia. Vain yksi päätoimintatila voi olla
päällä. Oletustoimintatila on Fundamental, jolla ei ole
mitään erikoisominaisuuksia. Usein Emacs valitsee toimintatilan
käsiteltävän tiedoston nimen loppuosan perusteella; jos nimi
esim. loppuu merkkeihin
.f
, niin Emacs valitsee Fortran-toimintatilan.
Kuvauksen päätoimintatilasta saa (silloin kun Emacs on kyseisessä tilassa)
käskyllä C-h m
(vrt. kohtaan 6.3)
MINOR on sivutoimintatila, joka on muista riippumaton ominaisuus tälle
puskurille. Hyvä esimerkki on
tekstimoodissa
yleisesti käytetty
automaattinen rivinvaihto
(auto-fill-mode).
Kerralla voi olla asetettuna
useita sivutiloja.
Usein sivutoimintatila muuttaa ns. näppäinsidoksia eli sitä, mitä mikin
näppäin ja näppäinyhdistelmä vaikuttaa; näppäinsidokset saa selville
käskyllä C-h b
(vrt. kohtaan 6.3)
SIJ (sijainti tiedostossa) kertoo, mitä kohtaa tekstistä katsotaan; SIJ voi olla
All
, jolloin koko teksti on näkyvissä
Top
, jolloin ollaan tekstin alussa
Bot
, jolloin ollaan tekstin lopussa
Editointitoimenpiteet, kuten uuden tekstin kirjoittaminen, kohdistuvat kohtaan, jossa kursori on. Kursorin osoittama kohta on sen merkin edessä, jonka päällä itse suorakaide tai alaviiva on.
Useita ikkunoita käsiteltäessä aktiivinen ikkuna on se, jossa kursori sijaitsee. Kerralla ei voi olla useampia kursoreita.
Merkki (mark) on näkymätön piste tekstissä, joka täytyy erikseen itse asettaa. Kerran asetettu merkki pysyy samassa paikassa, kunnes sitä siirretään. Tosin useat käskyt varsinaisen toimintansa ohessa muuttavat merkin paikkaa. Erityinen merkinasettamiskäsky on C-@. Useissa päätteissä saman asian ajaa C-SPC (pidetään control-näppäintä alhaalla ja painetaan välilyöntinäppäintä).
Asettamalla merkin ja viemällä kursorin toiseen kohtaan tekstiä voit käsitellä välissä olevaa tekstiä alueena (region). Voit esim. muokata, poistaa tai kopioida alueita.
Alueen käsittelyn kannalta on samanarvoista, kumpi on tekstissä aiemmin, kursori vai merkki.
Asettamalla merkin voi myös pitää kirjaa tärkeistä tekstin kohdista, joihin pitää palata. Emacs pystyy muistamaan 16 viimeisintä asetusta.
emacs
. Jos
halutaan suoraan avata tiedosto editoitavaksi, voidaan antaa sen nimi
komennon argumenttina, esimerkiksi emacs testi.doc
.
Jos Emacs käynnistetään X-päätteeltä,
kannattaa ohjata käskyn suoritus taustalle &
-merkillä, esim.
emacs koe.txt &
.
Emacs avaa tällöin oman ikkunansa.
Käynnistyessään Emacs suorittaa käyttäjän
tekemät omat asetukset tämän kotihakemistosta
.emacs
-tiedostosta,
jos sellainen on olemassa. Asetukset kirjoitetaan
alustustiedostoon
.emacs
erityisellä merkintätavalla, Lisp-kielen
murteella. Yksinkertainen käyttö ei kuitenkaan vaadi Lispin
osaamista. Alustustiedoston perustaminen ei ole mitenkään
välttämätöntä.
Emacs kannattaa käynnistää yhden pääteistunnon
aikana vain kerran ja vain tarvittaessa, sillä silloin se kuormittaa
konetta vähiten. Mikäli välillä pitää
päästä käsiksi komentotulkkiin, voidaan Emacs
pysäyttää taustalle käskyllä C-z. Takaisin Emacsiin
päästään fg
-komennolla.
Jos käynnistettäessä ei anneta argumenttina tiedoston
nimeä, Emacs aluksi avaa *scratch*
-puskurin, jonka sisältö
on tyhjä. Jos halutaan luoda uusi tiedosto, voi tekstin kirjoittaa
*scratch*
-puskuriin ja sitten tallettaa sen käskyllä C-x C-w;
tällöin Emacs kysyy käskyrivillä, millä
tiedostonimellä teksti talletetaan.
Vanha teksti saadaan editoitavaksi käskyllä
C-x C-f
Senkin yhteydessä Emacs lukee tiedoston nimen käskyriviltä.
Voidaan myös käyttää käskyä
C-x 4 C-f
jolloin Emacs (tiedostonnimen luettuaan) avaa toisen ikkunan.
Jos käskyn C-x C-f tai C-x 4
C-f yhteydessä annetaan
tiedostonnimi, jota vastaavaa tiedostoa ei löydy, Emacs ilmoittaa,
että kyseessä on uusi tiedosto, ja luo sille tyhjän
puskurin.
Jos toisaalta olet keskeyttänyt Emacsin C-z:lla ja yrität lopettaa
istunnon logout
-komennolla, saat ilmoituksen
There are suspended jobs
eikä istunto katkea. Tällöin on paras palata Emacsiin
fg
-komennolla, lopettaa Emacs siististi seuraavassa kuvattavalla tavalla ja
sitten antaa logout
-komento.
Emacsin lopettaa käsky
C-x C-c
Jos jokin puskureista on tallettamatta, Emacs kysyy, talletetaanko ne:
Save file /u/lai/lk/viu/koe.txt? (y or n)
Tähän vastataan pelkällä
y
- tai n
-kirjaimella, siis
painamatta Returnia. Mikäli kaikkia muutoksia ei oteta talteen, niin
Emacs vielä varmistaa, että halutaan todella lopettaa:
Modified buffers exist; exit anyway? (yes or no)
(Puskureita on muutettu; lopetetaanko siitä huolimatta?)
Tähän vastataan kirjoittamalla yes
tai no
ja painamalla Returnia.
Tiedoston talletus samalle nimelle tapahtuu käskyllä C-x C-s.
Joskus tämä ei toimi siksi, että jostakin syystä C-s
aiheuttaa lukituksen (XOFF), josta enemmän
kohdassa 11.1. Lukituksen voi
vapauttaa C-q:lla. Tällöin voi esim. käyttää
käskyä C-x s
ja vastata jokaisen puskurin kohdalla, miten
menetellä.
Tiedosto voidaan tallettaa toiselle nimelle aiemmin mainitulla käskyllä C-x C-w.
Jos vahingossa tulee muuttaneeksi puskurin sisältöä, voi
käskyillä C-x u
tai C-_ palata askel askeleelta takaisinpäin,
kunnes väärä toimenpide on peruutettu.
Joskus harvoin, lähinnä käytettäessä hitaita linjoja, voi ehtiä painamaan peräkkäin kaksi C-g:tä sillä tavoin, että Emacs tulkitsee tilanteen hätäkeskeytykseksi (Emergency Escape). Tällöin Emacs kysyy kaksi kysymystä:
Auto-save? (y or n) Abort (and dump core)? (y or n)
Vastaa näihin joko y
tai n
ja perään rivinvaihto.
Myöntävä vastaus ensimmäiseen kysymykseen johtaa
kaikkien puskureiden talletukseen. Myöntävä vastaus
jälkimmäiseen keskeyttää Emacsin suorituksen, jolloin
muistin senhetkinen tila tallettuu core
-tiedostoon ja palataan
komentotulkkiin. core
-tiedostot ovat yleensä hyvin suuria, eikä
niitä kannata turhan takia säilyttää.
Esimerkkejä tärkeimmistä valitsimista:
emacs tentit
tentit
.
emacs -q
.emacs
.
emacs +30 tent
tent
siten, että kursori menee suoraan riville 30.
emacs -f vm
emacs -f mail
emacs -f gnus
Perustilassaan Emacs ei jaa tekstiä riveiksi, vaan sinun on tehtävä se itse painamalla Return-näppäintä rivin lopussa. Jos haluat automaattisen riveiksi jakamisen, katso vinkki kohdasta 10.4. Tyhjiä rivejä saa tekstiin painamalla Returnia monta kertaa peräkkäin.
Kun kuvaruutu tulee täyteen, Emacs automaattisesti siirtää tekstiäsi ylöspäin, t.s. alkuosa menee pois näkyvistä ja ruudun alaosaan tulee tyhjää tilaa.
Jos kirjoitat virheellisen merkin, voit poistaa sen DEL-näppäimellä ja kirjoittaa uuden tilalle.
Kirjoitettuasi tekstin loppuun voit tallettaa sen ja poistua Emacsista, kuten kohdassa 4.2 selostettiin.
Vaikka edellä esitetty riittääkin kaikkein yksinkertaisimpaan käyttöön eli Emacsin käyttöön kirjoituskoneen tapaan, on syytä opetella ainakin muutama yksinkertainen tapa editoida tekstiä.
Emacsin editointi- eli muokkauskäskyt voivat koskea yksittäisiä merkkejä, sanoja, lauseita tai muunlaisia tekstin osia. Niitä käsitellään tämän luvun myöhemmissä osissa. Tässä kuvaamme lyhyesti vain yksinkertaista editointia ja liikkumista tekstissä.
Jos huomaat, että tekstiin on tullut virhe, voit siirtää kursorin kyseiseen kohtaan, tehdä korjauksen ja esim. mennä taas jatkamaan kirjoittamista tekstin loppuun käskyllä M-> (siis painamalla ensin ESC-näppäintä ja kirjoittamalla sitten suurempi kuin -merkin).
Päätteeltä kirjoitettavat tavalliset merkit (muut kuin kontrollimerkit tai muut Emacsin käskyt) menevät kursorin osoittamaan paikkaan, sen merkin eteen, jonka päällä kursori on. Jos siis tekstissäsi on sana
kirjottaa
,
voit korjata sen oikeammaksi viemällä kursorin ensimmäisen
t
-kirjaimen kohdalle ja painamalla
i
-näppäintä. Kirjoittamasi merkit menevät vanhan tekstiin väliin, eivät päälle; Emacs siirtää automaattisesti rivin loppuosaa eteenpäin.
Merkkien poisto kuvataan seuraavassa kohdassa. Merkin korvaaminen toisella on helpointa tehdä niin, että poistetaan väärä merkki ja kirjoitetaan samaan kohtaan uusi.
Yksinkertaisimmat kursoria liikuttavat käskyt ilmenevät seuraavasta:
C-p, edellinen rivi. C-b, merkki taaksepäin. C-f, merkki eteenpäin. C-n, seuraava rivi.
Useimmiten voi C-p:n, C-n:n, C-b:n ja C-f:n asemesta käyttää myös erityisiä nuolinäppäimiä (nuoli ylös, nuoli alas, nuoli vasemmalle, nuoli oikealle), jotka ovat näppäimistössä erillisenä ryhmänä.
Rivin alkuun pääsee käskyllä C-a ja rivin loppuun C-e:llä.
Monet usein käytettävät
käskyt koostuvat yhdestä tai kahdesta kontrollimerkistä.
Koska Emacsissa kuitenkin on paljon enemmän toimintoja kuin näin
voidaan esittää, suuri osa käskyistä on sellaisia,
että ne koostuvat M-x:stä ja käskysanasta tai yhdysviivalla
toisiinsa sidotuista sanoista, esim. M-x auto-fill-mode
. Tällaiset
käskyt lopetetaan painamalla Returnia. Ne ovat usein aika pitkiä,
mutta niitä kirjoittaessa voi käyttää ns. tunnistusta
TAB-näppäimellä: kirjoitetaan M-x ja käskyn sanallisen
osan alku ja painetaan TABia, jolloin Emacs täydentää
käskyn kokonaan tai osittain. Jos esimerkiksi kirjoitat
M-x au
ja
painat TABia, tulee käskyriville
M-x auto-
merkiksi osittaisesta tunnistuksesta; kun lopussa on yhdysviiva, on
tunnistus vasta osittainen. Jos jatkat kirjoittamalla f
:n ja painamalla
uudestaan TABia, tunnistus on täydellinen
M-x auto-fill-mode
jolloin voit painaa Returnia ja Emacs suorittaa halutun toimenpiteen.
Sanoja voi poistaa Emacsissa joko eteenpäin tai taaksepäin:
Jos tuli vahingossa tuhottua tekstiä, jota ei pitänytkään poistaa, katso ohjeita seuraavasta luvusta.
Jos on C-k -käskyllä poistanut rivin lopun tai useampia peräkkäisiä rivejä, ne voi palauttaa uuteen kursorin osoittamaan paikkaan käskyllä C-y (yank).
Mikäli C-k:ta on käytetty useasti ja eri paikoissa, on jokainen poisto otettu muistiin ns. poistorenkaaseen (kill-ring). Esille ne saadaan liikkumalla haluttuun paikkaan ja kirjoittamalla C-y, joka tulostaa viimeisimmän poiston. Heti perään painetaan M-y, joka tuo esille viimeistä edellisen poiston, seuraava M-y tuo yhtä aikaisemman ja niin edelleen, kunnes päästään haluttuun kohtaan.
Mikä tahansa käsky voidaan tällä tavoin saada toistumaan, jopa tavallinen kirjainmerkki: kirjoittamalla M-10 s
saadaan aikaan kymmenen s
-kirjainta.
Muistanet, että C-f ja C-b siirtävät kursoria merkin eteen- ja taaksepäin. Vastaavasti M-f ja M-b siirtävät kursoria eteen ja taakse sana kerrallaan. Sanojen erottimina toimivat tabulaattorit, välilyönnit, rivinvaihdot ja jotkin erikoismerkit, kuten valitettavasti meidän skandinaaviset "ääkkösemme".
Muistisääntönä voi pitää, että merkit ja sanat tottelevat samantapaisia käskyjä, ja rivejä ja lauseita voi käsitellä keskenään samantyyppisillä käskyillä. Eli jos C-a liikuttaa kursorin rivin alkuun, niin M-a siirtää sen aina edellisen lauseen alkuun. Vastaavasti C-e siirtää kursorin rivin loppuun ja M-e siirtää sen lauseen loppuun.
Kokonaisen ruudullisen eteenpäin siirtää käsky C-v. Vastaavasti taaksepäin yhden ruudullisen pääsee M-v:llä. Oikeastaan nämä eivät siirry eteenpäin ihan koko ruudullista. Esimerkiksi
C-v:llä siirryttäessä ruudun uuden sisällön kaksi ensimmäistä riviä ovat samat kuin vanhan sisällön kaksi viimeistä.
Kerralla koko tiedoston alkuun pääsee käskyllä M-< ja tiedoston loppuun käskyllä M->.
Jos haluaa siirtyä esim. kolmen sanan verran eteenpäin, voi joko toistaa käskyä M-f kolmesti tai antaa käskylle argumenttina numeron 3. Eli M-3 M-f (painetaan ESC, 3, ESC ja f).
emacs koe.txt testi.doc
eli luetaan kerralla kaksi tiedostoa puskureihin.
Ellei annetun nimistä tiedostoa ole, luodaan tyhjä puskuri. Aina
käynnistyessään Emacs tekee myös puskurin nimeltä
*scratch*
.
Puskuri testi.doc täyttää nyt koko koko näytön.
Lista muista Emacsissa olevista puskureista saadaan
näppäilemällä C-x C-b. Tämä jakaa
näytön ja luo uuden ikkunan nimeltä
*Buffer List*
, josta alla
esimerkki:
MR Buffer Size Mode File -- ------ ---- ---- ---- . testi.doc 0 Fundamental /u/guests/viu/elisptesti.doc koe.txt 0 Fundamental /u/guests/viu/elisp/koe.txt *scratch* 0 Lisp Interaction * *Buffer List* 299 Buffer Menu
--%%-Emacs: *Buffer List* (Buffer Menu)----All-----------
1
. Käsky
kasvattaa valitun ikkunan koko näytön kokoiseksi.
Puskuria voi vaihtaa käskyllä C-x b
, jonka jälkeen annetaan
puskurin nimi. Puskurien nimet löytyvät puskurilistauksen toisesta
sarakkeesta
Buffer
. Oletusarvoisesti Emacs tarjoaa edellisen puskurin
nimeä, johon siirtymiseksi riittää Return-näppäimen
painaminen.
Jos näytöllä on samaan aikaan useampia puskureita, voi
puskurista toiseen liikkua komennolla C-x o
.
Puskuri poistetaan kokonaan eli tapetaan käskyllä C-x k
ja
antamalla tarpeettoman puskurin nimi. Jos puskurissa on
tallettamattomia muutoksia, Emacs vielä varmistaa, ettei puskuria
tuhota erehdyksessä.
Kursorin osoittama ikkuna jaetaan kahtia käskyllä C-x 2
. Syntyy
kaksi keskenään samanlaista, tilarivin erottamaa ikkunaa, jotka
ovat kooltaan puolet alkuperäisestä. Molemmat ikkunat avautuvat
samaan puskuriin, eli toisessa ikkunassa tehdyt muutokset näkyvät
myös toisessa. Voit toki editoida toisessa ikkunassa jotain toista
tiedostoa. Haet vain uuden tiedoston editoitavaksi komennolla
C-x C-f. Ikkunaa voi myös kasvattaa yhden rivin verran komennolla
C-x ^
. Se ikkuna kasvaa,
jossa kursori käskyn antamisen aikana on.
Ikkuna jaetaan pystysuoraan käskyllä C-x 5
. Näyttö jakautuu keskeltä kahtia katkoviivoituksella. Molemmat näin syntyneet ikkunat ovat samanlaisia, kummallakin on oma tilarivinsä ja kumpaakin voidaan käsitellä täysin itsenäisesti.
Pystysuorasti jaettu ikkuna ei ole kaikista selkeimmän näköinen.
Riveistä on näkyvissä noin puolet,
ja vain $
-merkki rivin lopussa osoittaa, että rivi jatkuu ikkunan rajojen ulkopuolelle.
Jos näytöllä on monta ikkunaa, voi kursorin vaihtaa toiseen ikkunaan käskyllä C-x o
. Jos ruudulla on vaikka 3 - 4 ikkunaa, komennolle voi antaa myös numeroargumentin ja hypätä usea ikkuna kerrallaan. Esim. M-2 C-x o
siirtyy yhden ikkunan "yli".
Aktiivisen ikkunan saa suurennettua koko näytön kokoiseksi käskyllä C-x 1
.
Tämä peittää muut ikkunat "alleen".
Aktiivisen ikkunan taas hävittää käsky C-x 0. Se siirtää ikkunan sisällön pois näkyvistä ja kasvattaa muiden näytöllä olevien ikkunoiden kokoa. Ikkunassa ollut puskuri ei kuitenkaan häviä mihinkään, vaan jää "taustalle". Jos näytöllä on vain yksi ainoa ikkuna, jota yritetään poistaa, Emacs antaa virheilmoituksen.
4
f toinen_tiedosto
hakee tiedoston avaten sille toisen ikkunan.Jos käytät käskyä C-x C-f, Emacs avaa tiedoston käsittelyä varten uuden puskurin siirtäen vanhan puskurin taustalle (mutta hävittämättä sitä). Koska puskurien määrä helposti kasvaa liian isoksi, voi käyttää käskyä C-x C-v, joka lukee tiedoston nykyiseen puskuriin (tarjouduttuaan ensin tarvittaessa tallettamaan sen vanhan sisällön).
Toisen tiedoston sisällön saa lisättyä puskuriin kursorin osoittamaan paikkaan käskyllä C-x i. Emacs lukee tiedoston nimen käskyriviltä.
Käskyllä C-x C-s tiedosto talletetaan samalle nimelle kuin
aiemmin. Tämä korvaa tiedoston aiemman sisällön, jonka
Emacs siirtää
varmuuskopioksi
(back-up file); ne tunnistaa nimen
lopussa olevasta tildemerkistä ("matomerkistä")
~
.
Jos sinulla esimerkiksi on
tiedosto docu
, jota olet editoinut Emacsilla, niin talletuksen
yhteydessä Emacs siirtää tiedoston aiemman sisällön
nimelle docu~
.
Käsky C-x s
tallettaa kaikki Emacsissa olevat muutetut puskurit.
Toiselle nimelle tiedosto voidaan tallettaa käskyllä
C-x C-w uusi_nimi.
Emacs hyväksyy tiedostonnimiin mitä tahansa merkkejä. Esim.
skandinaavisten merkkien (ä
, ö
,
å
) käyttöä
kannattaa kuitenkin välttää, koska komentotulkille ne ovat
suuri ongelma.
Mikäli tiedosto on tällaiselle nimelle luotu, sen voi
kätevästi muuttaa käskyllä M-x rename-file
. Silloin
Emacs kysyy ensin, mikä tiedosto uudelleennimetään, ja sitten
uuden nimen.
h
Jos halutaan siirtää alue paikasta toiseen, niin alueen merkitsemisen jälkeen tuhotaan se C-w:llä, siirretään kursori uuteen paikkaan ja annetaan käsky C-y (vrt. kohtaan 5.3). Jos taas halutaan kopioida alue, menetellään muutoin samoin mutta C-w:n asemesta käytetään M-w:tä. Tällä menetelmällä voidaan myös siirtää tai kopioida tekstiä puskurista toiseen, koska ns. poistorenkaan sisältö säilyy puskuria vaihdettaessa.
isearch-forward
.Kun kirjoitat C-s:n, käskyriville ilmestyy
I-search:
Kun sitten kirjoitat haettavan merkkijonon ensimmäisen merkin, se tulee näkyviin em. tekstin perään ja samalla Emacs hakee merkin ensimmäisen esiintymän (kursorin paikasta lähtien). Kun kirjoitat seuraavan merkin, sekin tulee näkyviin ja Emacs jatkaa tarvittaessa hakua. Käytännössä voit kirjoittaa haettavaa merkkijonoa omaan tahtiisi ja Emacs hakee sitä omaan tahtiinsa. Kun löytyy esiintymä, josta eteenpäin et halua jatkaa hakua ainakaan saman tien, paina ESC-näppäintä, jolla pääset pois hakutilasta. Myös esim. millä tahansa kursoria siirtävällä kontrollimerkillä kuten C-a:lla tullaan pois hakutilasta. Jos myöhemmin haluat hakea samaa merkkijonoa uudestaan, voit kirjoittaa C-s C-s.
Jos ennen haun lopettamista annetaan uusi C-s, Emacs etsii siihen mennessä annetun merkkijonon seuraavan esiintymän.
Hakiessaan merkkijonoa Emacs ei kiinnitä huomiota isojen ja pienten
kirjainten eroon kirjainten a
- z
osalta.
C-r toimii muutoin aivan samoin kuin C-s mutta hakee taaksepäin.
Query replace:
Kirjoita sitten korvattava merkkijono, esim. foo
, ja paina Returnia, jolloin
käskyriville tulee em. tekstin tilalle seuraavanlainen:
Query replace foo with:
jolloin voit kirjoittaa korvaavan merkkijonon, esim. bar
, ja taas painaa
Returnia. Nyt Emacs lähtee hakemaan korvattavan merkkijonon
ensimmäistä esiintymää kursorin paikasta lähtien ja
näyttää tekstiä niin, että kursori on kyseisen
esiintymän perässä. Kun käskyriville tulee teksti
Query replacing foo with bar:
on Emacs erityisessä tilassa, jossa se odottaa päätöstäsi kyseisen esiintymän osalta. Voit ilmaista valintasi yleensä yhdellä merkillä:
.
!
Done
ja ollaan normaalissa editointitilassa.
Jos korvattava merkkijono annetaan pienin kirjaimin, niin Emacs
löytää myös sellaiset esiintymät, joissa on
vastaavia isoja kirjaimia, ja korvauksessa käyttää
samanlaista kirjoitusasua kuin korvattavassa esiintymässä. Jos
esimerkiksi korvattava merkkijono on foo
ja korvaava
bar
, niin Emacs
löytää myös esiintymät FOO
ja Foo
korvaten ne
merkkijonoilla BAR
ja Bar
.
Emacsin etuihin kuuluu sen sisäänrakennettu avustustila, mutta saadakseen siitä parhaan hyödyn irti käyttäjän pitää olla tottunut Emacsin ikkunoihin, puskureihin ja niiden käsittelyyn.
Tutorial käynnistyy käskyllä C-h t
, ja se antaa itse varsin selkeät ohjeet jatkosta.
C-h (Type ? for further options) -
Painamalla kysymysmerkkiä tai toisen kerran C-h:ta saat listan valitsimista, ja vielä kerran C-h:ta painamalla saat perusteellisen selvityksen. Tärkeimmät valitsimet ovat:
m
, niin kyseinen kuvaus on
lähinnä lista
käytettävistä käskyistä ja sopii siis asioiden tarkistamiseen
niille, jotka jo tietävät, mistä on kysysymys.
Sen sijaan infopuusta löytyy käskyluettelon lisäksi sanallinen
selostus itse toimintatilan luonteesta.
Infopuu on puumainen: siinä oleva dokumentti koostuu "alaspäin", yhä yksityiskohtaisempiin tietoihin menevistä solmuista (node). Eri solmuista voi olla viittauksia (reference) toisiinsa, jopa toisten dokumenttien solmuihin.
Kuten edellä
esitettiin, infojärjestelmä käynnistetään käskyllä C-h i
.
Mistä tahansa infojärjestelmässä pääsee takaisin ylimmän tason solmuun eli päähakemistoon käskyllä
d
, kun taas
q
(quit) lopettaa infon käytön, jolloin palataan siihen tilanteeseen Emacsissa, josta info käynnistettiin.
Infojärjestelmää käytettäessä näytön ylin rivi on hakemiston otsikko,
jossa kerrotaan tiedosto (File
),
jossa dokumentti sijaitsee, solmun
(Node
)
nimi (ylimmällä tasolla Top
) ja muuta tärkeätä tietoa.
Esimerkiksi kun infojärjestelmä on käynnistetty (C-h i
),
ylin rivi on seuraavanlainen:
File: dir Node: Top This is the top of the INFO tree
Aloitusruudussa on myös lyhyet käyttöohjeet. Niiden jälkeen on muuta tekstiä.
Tähdellä *
alkavat rivit ovat mahdollisia valintoja, joihin pääsee siirtymällä kursorilla valinnan kohdalle ja painamalla
m
-näppäintä ja Returnia tai painamalla
m
-näppäintä, kirjoittamalla valinnan nimi ja painamalla Returnia.
Valittavana olevat dokumentit ovat osaksi Emacsin omia dokumentteja, Gnu-projektin muiden ohjelmien käyttöohjeita tai paikallisia englannin- tai suomenkielisiä ohjeita. Ohjeet eivät välttämättä ole ajan tasalla.
Usein (mm. aloitustilanteessa) solmussa on tietoa enemmän, kuin yhdelle ruudulliselle mahtuu. Tekstin sisällä voi liikkua normaaliin tapaan (esim. C-v:llä ruudullisen eteenpäin). Lisäksi voi siirtyä noin ruudullisen verran eteenpäin välilyönnillä.
Infopuussa on mm. laajahko dokumentaatio Emacsista itsestään. Jos haluat lukea sitä, siirry (infojärjestelmän käynnistämisen jälkeen) esim. C-v:llä ja C-n:llä sille riville, jolla lukee
* Emacs: (emacs). The extensible self-documenting text editor.
ja paina m
-kirjainta. Infon kysymys
Menu item (default Emacs):
kuitataan painamalla Returnia.
Tällöin tulee näkyviin infopuun Emacsia koskevan haaran ylimmän tason solmu. Siitä voi edelleen valita jonkin alihaaran jne. Tässä solmussa otsikkorivi on seuraava:
File: emacs, Node: Top, Next: Distrib, Up: (DIR)
Otsikosta käy ilmi, että tästä solmusta seuraava solmu on
Distrib
(joka käsittelee Emacsin jakelua). Siihen voi siirtyä pelkällä
n
-näppäimen painalluksella. Toisaalta
u
-näppäimellä voi siirtyä hakemistopuun ylempään haaraan eli tässä tapauksessa ylimpään solmuun (päähakemistoon). Tällaiset helpot siirtymiset ovat mahdollisia silloin, kun otsikkorivillä ovat kohdat
Next
ja Up
.
Korostettakoon, että jos infopuussa suunnistaessasi eksyt, pääset aina päähakemistoon d:llä.
Tavallisempaa kuin siirtyminen n:llä seuraavaan solmuun on valita (esim. C-v:tä ja C-n:ää käyttäen) jokin
*
:llä alkava rivi, painamalla m:ää jne. Näin päästään vastaavaan infopuun haaraan, josta voidaan suunnistaa edelleen yksityiskohtaisempiin tietoihin. Jos solmun tekstissä ei ole
*
:llä alkavaa riviä, se on alimman tason solmu.
Kun poistut infojärjestelmästä
q
:lla, Emacs ei hävitä
Info
-puskuria vaan piilottaa sen näkyvistä. Jos saman Emacs-istunnon aikana käynnistät infojärjestelmän uudestaan (C-h i
), pääset jatkamaan juuri samasta kohdasta, mihin viimeksi jäit.
man emacs
saatava tieto ei kuvaa Emacsin käskyjä mutta kylläkin mm. optiot, joita voi antaa Emacsin käynnistyskomennossa; suuri osa niistä liittyy ns. X-ikkunointiin. Lisäksi se antaa tiedon siitä, mistä löytyy erilaisia Emacsiin liittyviä tiedostoja, mm. erilaisia dokumentteja ja Lisp-koodi, joka määrittelee suurimman osan editointikäskyistä.
http://www.gnu.org/
kautta löytyy laaja
Gnu-Emacsin dokumentaatio, mm.
GNU Emacs Manual, joka on saatavissa useissa
eri muodoissa, mm.
kätevänä hypertekstiversiona.
Gnu-Emacsista, kuten hyvin monesta muustakin aihepiiristä, on tehty ns.
fakki
eli kokoelma vastauksia usein esitettyihin kysymyksiin
(engl. FAQ, (answers to) Frequently Asked Questions).
Se on olemassa useassa muodossa, joista virallisin (mutta valitettavasti vain
tekstimuotoinen) lienee
http://www.cis.ohio-state.edu/hypertext/faq/usenet/GNU-Emacs-FAQ/top.html
ja eräs hiukan vanhempi mutta hypertekstimuotoinen on
http://www.eecs.nwu.edu/emacs/faq/
Tietoja erityisaiheista:
é
ja monien muiden erikoismerkkien tuottamista.
Nämä välineet ovat vaihtoehtoja erilaisille itsenäisille meili- ja nyysiohjelmille. Unix-oppaassa kuvataan esim. itsenäisen meiliohjelman Pine käyttö.
rmail
. Ikkunaan tulee ensimmäinen lukematon viesti ja käskyriville ilmoitus uusien viestien määrästä. Jos uutta
meiliä ei ole tullut, Rmail antaa tästä ilmoituksen ja näyttää viimeisimmän
meilin; tämän jälkeen käyttäjä voi selailla vanhoja meilejä.
Käynnistettäessä Rmail lukee meilit käyttäjän meililaatikosta ja tallettaa ne
RMAIL
-nimiseksi tiedostoksi käyttäjän kotihakemistoon erityisessä Rmail-formaatissa.
Uusien viestien lukeminen tapahtuu painamalla välilyöntiä.
Rmail lopetetaan painamalla q
-kirjainta. Tällöin palataan siihen tilanteeseen Emacsissa, mistä Rmail käynnistettiin.
m
(tai M-x mail
) taikka
C-x 4 m
, joista jälkimmäinen avaa samalla uuden ikkunan. Koko puskuri on varattu kirjeen kirjoittamiselle, ja siinä voi käyttää normaaleja Emacsin editointikäskyjä. Aluksi Mail kirjoittaa näytön alkuun seuraavan:
To: Subject: --text follows this line--Kursori jää tekstin
To:
perään, ja käyttäjä voi suoraan kirjoittaa vastaanottajan meiliosoitteen. Sen jälkeen siirrytään seuraavan rivin loppuun (esim. C-n C-e) ja kirjoitetaan viestin otsikko. Seuraavaksi mennään koko tekstin loppuun (esim. M->) ja ryhdytään kirjoittamaan itse viestiä. Sen kirjoittamisen jälkeen tilanne näyttää seuraavantapaiselta:
To: Jukka.Korpela@malibutelecom.com Subject: Testimeili --text follows this line-- Tämä on testiviesti.
Meili lähetetään käskyllä C-c C-c, jonka jälkeen Emacs ilmoittaa lähettämisestä. Tällöin Mail-ohjelman käyttö päättyy eli palataan tilanteeseen, josta aloitettiin meilin lähettäminen.
n
p
>
RMAIL
-tiedoston viimeiseen viestiin.
j
RMAIL
-tiedoston ensimmäiseen viestiin, ellei numeroargumentilla toisin määrätä. Esim. C-u 3 j
siirtyy kolmanteen viestiin.
RMAIL
-tiedostoon ja luettavaksi painamalla
g
:tä (get new mail).
q
:ta, joka on näppäinlyhennys käskylle
M-x rmail-quit
.
Tällöin RMAIL
-puskuri jää olemaan ja voit palata siihen jatkamaan viestien selailua ilman uutta Rmailin käynnistystä vaihtamalla puskuria käskyllä
C-x b RMAIL
.
Puskurin voi myös tappaa (C-x k
), jolloin Emacs varmistaa,
haluatko tallettaa RMAIL
-tiedoston.
Tätä voi käyttää paniikkitilanteissa, jolloin ei ole aivan varma, onko tehnyt jotain, jota ei olisi kannattanut tehdä; silloin tietysti kerrotaan, että muutoksia ei haluta tallettaa.
Jos vahingossa tai tahallaan tappaa ja lopettaa Emacsinsa, se kysyy, talletetaanko muutokset. Tämä pätee myös
RMAIL
-tiedostoon.
m
tai toiseen ikkunaan käskyllä C-x 4 m
tai Rmailin sisällä käskyllä m
.
Puskurissa *mail*
on valmiina kentät otsikkotiedoille
To:
ja
Subject:
.
Omia kenttiään voi lisätä seuraavaan tapaan:
To:
Subject:
Keywords:
Fcc:
Cc:
Bcc:
Reply-to:
Rivin
--text follows this line--
jälkeen kaikki teksti on itse kirjettä eli vastaanottajalle päätyvää viestiä.
Käskyllä C-c C-w lisätään viestin perään käyttäjän kotihakemistosta tiedosto
.signature
.
Kirjoitettuasi viestin lähettäminen tapahtuu painamalla C-c C-c, jolloin viesti lähetetään,
*mail*
-puskuri tuhotaan ja palataan puskuriin, josta maili päätettiin lähettää.
r
. Tällöin Rmail käynnistää Mailin toisessa ikkunassa ja asettaa tarpeelliset otsikkokentät valmiiksi. Otsikkotietoja voidaan muutella: voit lisätä tai poistaa vastaanottajia tai lisätä uusia otsikkotietoja.
Alkuperäisen viestin saat kopioitua vastaukseesi käskyllä
C-c C-y. Voit myös vaihtaa takaisin
RMAIL
-tiedostoon ja valita näkyville jonkin toisen viestin ja kopioida senkin sisällön parhaillasi kirjoittamaasi viestiin käskyllä C-c C-y.
Viesti tulee taas tekstin
--text follows this line--
jälkeen ja jälleen käskyllä C-c C-w lisätään .signature
.
Jos välillä "unohdat" vastauksesi ja jatkat meiliesi selailua, pääset palaamaan aloittamaasi viestiin käskyllä c
, continue.
Lähettäminen tapahtuu käskyllä C-c C-c, jonka jälkeen palataan takaisin Rmailiin, tai käskyllä C-c C-s, joka vain lähettää viestin mutta jättää
*mail*
-puskurin esille jatkotoimenpiteitä varten.
.emacs
iinsa rivin
(setq mail-self-blind t)
f
.
Tällöin Emacs kopioi edelleen lähetettävän viestin kokonaisuudessaan puskuriin
*mail*
ja kysyy sille uuden vastaanottajan. Viestiin on mahdollista tehdä omia korostuksiaan ja poistaa tarpeettomia pätkiä.
Lähettäminen tapahtuu käskyllä C-c C-c.
d
u
e
tai x
RMAIL
-tiedostoon käyttäjän kotihakemistoon. Tallettaessaan Emacs käyttää erikoista Rmail-formaattia eli lisää tiedostoon ohjausmerkkejä, jotta Rmail osaisi näyttää viestin kerrallaan ja liittää viestiin oikeat attribuutit (onko vastattu, muokattu jne.).Yksittäisten viestien tallettaminen onnistuu sekä RMAIL-formaatissa että tavallisessa, ns. Unix mail -formaatissa. Jos samalle nimelle talletetaan useampia viestejä, menee uudempi viesti tiedoston perään.
o
i
Tunnisteen lisäys tapahtuu
käskyllä a
. Rmailin tuntemat tunnisteet voi täydentää tabulaattorilla.
Tunnisteet näkyvät tilarivin oikeassa reunassa viestin numeron yhteydessä tai otsikoiden yhteenvedossa (kts. seuraava kappale). Käskyllä l
voi nopeasti kaivaa esiin kaikki tuhottaviksi merkityt viestit, talletetut viestit tai jo vastatut viestit.
Tunniste poistetaan käskyllä k
.
Käskyllä h
avataan toiseen ikkunaan
RMAIL-summary
-puskuri, jossa on viestin numero, lähettäjä, viestin tunnisteet ja aihe.
Esimerkki Rmail-SUMMARY
-puskurista:
17 18-Jun Paivi.Hyvarinen@hut.fi tärkeää, Opaskokous 18 20-Jun jkorpela@vipunen.hut.fi opasopas 19 25-Jun kiravuo@meridian.hut.fi NetikettiNäissä otsikoissa voi liikkua kuten viesteissäkin:
n
p
>
RMAIL
-tiedoston viimeiseen viestiin.
j
d
u
q
x
.mailrc
-tiedostossa käyttäjän kotihakemistossa.
Aliasmäärittely on seuraavaa muotoa:
alias
nimi lista
missä nimi on se nimi, joka aliakselle halutaan antaa, ja lista on lista osoitteista yhdellä rivillä välilyönnillä erotettuna.
Esimerkki alias-määrittelystä:
alias itse viu@uta.fi viu@vehka.cs.uta.fi viu@vipunen \ viu@niksula viu@pepperoneHuomaa, että
\
tarkoittaa rivin jatkuvan vielä rivinvaihdonkin yli. Jos
auto-fill-mode
on päällä,
jolloin Emacs katkaisee rivit automaattisesti,
täytyy joko auto-fill-mode ottaa pois päältä tai tuhota rivinvaihto käsin.
vm
.
Systeemin meililaatikossa olevat meilit luetaan kansioon
INBOX
ja esitetään käyttäjälle. Tässä yhteydessä kansio voidaan ymmärtää tiedostoksi, jossa useita viestejä säilytetään otsikkoineen.Puskurissa näytetään ensimmäisen lukemattoman viestin otsikot ja käskyrivillä kerrotaan, kuinka monta lukematonta ja uutta viestiä kansiosta löytyy.
Viestin rungon saa esille välilyöntiä painamalla, ja viestin loputtua siirtyminen seuraavaan viestiin tapahtuu painamalla välilyöntiä tai näppäintä n
.
Lopettaminen tapahtuu näppäimellä q
, jolloin viestit siirretään kotihakemistoosi tiedostoon INBOX
, tai x
, jolloin ei muutoksia talleteta.
?
. Toisella painalluksella se herättää
käskyn C-h m
,
toimintatilan
kuvauksen.
Muodostuvan
*help*
-ikkunan saa häivytettyä käskyllä
C-x 1
tai siirtymällä
*help*
-ikkunaan käskyllä C-x o
ja
tappamalla puskurin käskyllä C-x k
.
Myös muut Emacsin sisäiset avunannot toimivat;
käskyllä C-h ?
saa listan vaihtoehdoista.Myös Emacsin infopuussa on hyvät ja selkeät ohjeet Vm:n käytöstä.
h
saa näkyviin
INBOX-Summary
n,
joka
listaa kaikista viesteistä lähettäjän, viestin otsikon ja viestin numeron.
Voit siirtyä
INBOX-Summary
-puskuriin komennolla
C-x o
. Jos viestejä on paljon, voit suurentaa
INBOX-Summary
-ikkunan koko ruudun kokoiseksi
käskyllä C-x 1
.
b
n
p
N
n
, mutta näyttää myös jo luetut tai tuhottavaksi merkityt viestit.
P
p
, mutta näyttää myös jo luetut tai tuhottavaksi merkityt viestit.
g
.
r
R
f
F
z
m
*mail*
-puskurin ja asettavat tarvittavat kentät valmiiksi. Omia kenttiään voi lisätä ja alkuperäisiä muutella, kunhan varsinainen viestin teksti tulee rivin
--text follows this line--
jälkeen. Katso lisäkenttien vaihtoehtoja
kohdasta 7.2.8.Valmis viesti lähetetään käskyllä C-c C-c. Jos haluaa lisätä kotihakemistostaan tiedoston .signature viestin loppuun, niin käsky on C-c C-w.
To:
-kenttään pilkulla erotettuna, Cc:
-kenttään
tai Bcc:
-kenttään. Voit katsoa
kentistä lisää
kohdasta 7.2.8.
Suositeltavampaa on erikseen harkita, onko viesti niin tarpeellinen, että siitä pitää säilyttää kopiota itsellään. Mutta myös kaikkien viestien kopioiminen on mahdollista. Automaattinen kaikkien viestien talteen ottaminen tapahtuu lisäämällä
.emacs
iin
joko rivit
;; Tallettaa lähtevän meilin kotihakemistoon ;; tiedostoon Mail.Out (setq vm-archive-file-name (expand-file-name "~/Mail.Out"))tai rivit
;; Lähettäjän nimi lisätään Bcc:-kenttään automaattisesti, eli ;; jokainen lähtevä meili lähetetään itselle. (setq mail-self-blind t)
INBOX
-tiedosto lyhyenä ja tuhota pois tarpeettomat viestit ja tallettaa tarpeelliset viestit muihin kansioihin. Tässä yhteydessä kansio tarkoittaa talletuksessa olevia viestejä otsikoineen ja tiedosto ilman otsikkoja.
d
u
k
#
q
s
w
S
INBOX
, niihin voidaan kurkistaa käskyllä v
(visit). Vm kysyy, mitä kansiota käytetään, ja näyttää kansion normaalisti. Lopetettaessa tämän kansion selailu
q
:lla tai x
:llä palataan taas INBOX
-kansioon.
.mailrc
-tiedostossa käyttäjän kotihakemistossa.
Aliasmäärittely on seuraavaa muotoa:
alias
nimi lista
missä nimi on se nimi, joka aliakselle halutaan antaa, ja lista on lista osoitteista yhdellä rivillä välilyönnillä erotettuna.
Esimerkki alias-määrittelystä:
alias itse viu@uta.fi viu@vehka.cs.uta.fi viu@vipunen \ viu@niksula viu@pepperoneHuomaa, että
\
tarkoittaa rivin jatkuvan vielä rivinvaihdonkin yli. Jos
auto-fill-mode
on päällä,
jolloin Emacs katkaisee rivit automaattisesti,
täytyy joko auto-fill-mode ottaa pois päältä tai tuhota rivinvaihto käsin.
Käsky h
(headers) järjestää meiliotsikot toiseen ikkunaan näyttäen lähettäjän, päiväyksen ja viestin aiheen:
1 Jukka Korpela Jun 18 8/362 "emacs" 2 Joanna Kaarina Oj Aug 19 2/23 "testi1" 3 U Mail Delivery Sub Aug 23 14/349 "Returned mail" 4 Joanna Kaarina Oj Aug 23 2/5 "Näyte" -> 5 N Joanna Kaarina Oj Sep 5 2/7 "myöskin"Nuoli osoittaa, mikä viesteistä on seuraavana luettavissa. Lukeminen tapahtuu painamalla välilyöntiä.
n
siirtyy seuraavaan viestiin ja
p
edelliseen. M-n siirtyy suoraan seuraavaan lukemattomaan viestiin ja M-p edelliseen lukemattomaan viestiin.
Viestejä voi ryhmitellä käskyllä G
(group). Mahdollisia järjestyksiä ovat mm. päivämäärä, viestin aihe, lähettäjä tai oletusarvoinen saapumisjärjestys. Listan vaihtoehdoista saa vastaamalla kehotteeseen välilyönnillä.
Nyyseistä yleisesti kertoo laajahko Nyysiopas.
Toiminta Gnusissa tapahtuu kolmessa puskurissa: nyysiryhmille, artikkelien aiheille ja itse artikkeleille on omat puskurinsa. Tämä helpottaa valikoimista: voi itse päättää, mitä ryhmää haluaa lukea, ja voi jo otsikoista katsella, onko keskustelu kovinkin kiivasta.
Seuraavassa kuvataan Gnusin perustoimintoja.
Lisätietoja löytyy mm.
Gnus FAQ:sta
ja gnus.org
ista,
jossa on laaja
Gnus Manual.
gnus
tai, jos ei halua käyttää oletusarvoista
nyysipalvelinta, käskyllä
C-u M-x gnus
. Jos et tiedä, mikä on käyttämässäsi koneessa oletusarvoinen
nyysipalvelin, lienee parasta ensimmäisellä kerralla antaa käsky
C-u M-x gnus
. Silloin käskyriville tulostuu esim. teksti
NNTP server: nntp
jolloin tässä tapauksessa oletusarvoinen
nyysipalvelin on nntp
. Jos haluat käyttää sitä, paina vain Returnia ja voit jatkossa käynnistää Gnusin käskyllä
M-x gnus
. Jos et, kirjoita (Emacsia normaalisti käyttäen) sanan nntp
tilalle haluamasi palvelimen nimi, esimerkiksi otax
.
Käynnistettäessä Gnus lataa itsensä, ottaa yhteyden nyysipalvelimeen ja tarkistaa, onko uusia artikkeleita. Näiden alkuvalmistelujen jälkeen Gnus näyttää nyysiryhmät ja näissä olevien lukemattomien artikkelien lukumäärät.
Ellei ryhmiä ja niissä olevia artikkeleita ole paljon, voi koko istunnon selvittää painelemalla välilyöntiä. Välilyönti valitsee ryhmän tai luettavan artikkelin tai näyttää seuraavan sivun tai sillä voi siirtyä sekä seuraavaan artikkeliin että ryhmään edellisen tultua luetuksi.
Lopettaminen tapahtuu painamalla q
-näppäintä
*Newsgroups*
-puskurissa. Mahdollisen makkarasormisuuden varalta Gnus vielä tarkistaa, että todella haluat lopettaa.
?
m
i
ja m gnus
.
n
:llä ja edelliseen ryhmään
p
:llä (myös emacsmaiset C-n ja C-p). Ryhmän kaikki artikkelit voidaan merkitä luetuiksi (catch up)
käskyllä c
, jolloin Gnus vielä
kysyy varmistuksen, haluatko todella tehdä niin.
Kun ryhmä on valittu, Gnus näyttää siitä ruudun yläosassa otsikkolistauksen varaten alaosan artikkelille.
Takaisin ryhmälistaukseen palataan q
:lla
ja siitä taas
q
:lla pois (takaisin siihen tilaan, josta Gnus käynnistettiin).
Gnusia käytettäessä on tärkeää ymmärtää, millä tasolla milloinkin ollaan, muun muassa siksi, että ryhmätasolla saattaa samalla kirjainkomennolla olla eri merkitys kuin artikkelitasolla. Seuraavassa kuvataan toiminnan eri tasoja Gnusin yhteydessä sekä perustoimintoja kullakin tasolla:
emacs
tai,
jos Emacs oli aiemmin käynnistetty ja sitten keskeytetty C-z:lla,
komennolla fg
.
gnus
tai M-x gnus
.
Tältä tasolta päästään Unixin komentotulkin tasolle
esim. tilapäisesti käskyllä C-z.
n
tai C-n siirtää seuraavan (next) ryhmän kohdalle
p
tai C-p siirtää edellisen (previous) ryhmän kohdalle
q
lopettaa Gnusin käytön, jolloin palataan
Emacsin perustasolle.
n
ja p
toimivat samaan tapaan kuin ryhmätasolla
mutta vievät seuraavaan tai edelliseen artikkeliin
q
lopettaa ryhmän lukemisen, jolloin palataan
Gnusin ryhmätasolle.
*
ilmoittaa, että ryhmässä tkk.tekola.vipunen on tärkeäksi merkitty artikkeli.
Kirjain U
on merkki siitä, ettei ryhmää enää tilata jatkossa (unsubscribed).
9: aloita_tasta * 1: tkk.tekola.vipunen 5: atk.tietoliikenne 26: atk.unix U 53: controlRyhmän voi valita välilyönnillä tai yhtäsuuruusmerkillä
=
, joka ei suoraan näytä ensimmäistä artikkelia.
Seuraavaan ryhmään pääsee näppäimellä n
,
N
tai C-n. N
ja C-n
siirtyvät myös jo luettuihin ryhmiin tai poistettuihin ryhmiin.
Vastaavasti p
, P
ja C-p siirtyvät edelliseen ryhmään.
Määrättyyn ryhmään pääsee antamalla käskyn j
ja kirjoittamalla ryhmän nimen. Emacs osaa täydentää nimeä tabulaattorilla ja välilyönnillä.
Koska kaikkien ryhmien lukeminen veisi paljon aikaa, kannattaa käyttää ahkerasti näppäintä
u
. Se poistaa ryhmän luettavien ryhmien joukosta; ryhmän saa takaisin siirtymällä ryhmän kohdalle ja painamalla näppäintä
u
uudestaan.
Iso L
listaa kaikki ryhmät riippumatta siitä,
onko ryhmä merkitty
u
:lla tai onko ryhmässä artikkeleja, joita ei ole luettu
(L
= Long list).
Pieni l
taas näyttää vain tilatut ryhmät, joissa on artikkeleja, joita ei ole vielä luettu
(l
= short list).
Kesken newsien lukemisen voi antaa käskyn g
, joka hakee ne
artikkelit, jotka mahdollisesti ovat saapuneet Gnusin käynnistämisen jälkeen.
Pieni g
pitää kirjoittaa ryhmien nimilistauksessa. Artikkelia luettaessa
g
siirtyy artikkelin alkuun. Uusien artikkelien hakeminen
on yleensä aiheellista vain, jos Gnusin käyttökerta kestää pitkään tai on erityistä syytä olettaa, että on tullut uusia kiinnostavia juttuja.
Gnus pitää kirjaa luetuista artikkelista ja ryhmien järjestyksestä tiedostossa
.newsrc
. Ryhmiä voi järjestellä komentotulkissa
sort
-komennolla, lue
man sort
tai Emacsin normaalitilassa käskyllä
M-x sort-lines
. Mutta myös Gnusissa voi vaihtaa ryhmien järjestystä: voit poimia ryhmiä poistokehään C-k:lla ja palauttaa ne C-y:llä jonnekin muualle.
D 18: [ 53:kiravuo@otax.] News-etiketti osa 1; Johdanto D 19: [166:kiravuo@otax.] News-etiketti osa 2; Kirjoittamisen perusteet K 20: [173:kiravuo@otax.] News-etiketti osa 3; Keskustelu 21: [130:kiravuo@otax.] News-etiketti osa 4; Ryhmät 22: [109:kiravuo@otax.] News-etiketti osa 5; Hyötykäyttöä - 23: [ 63:kiravuo@otax.] News-etiketti osa 6; SanastoYllä on otaxin ryhmän
aloita_tasta
otsikoita. Rivin alussa
D
osoittaa, että artikkeli on luettu tai merkitty luetuksi.
K
on ns. tapettu otsikko; tällä aiheella varustetut otsikot merkitään käsitellyiksi, eikä niitä tarvitse enää lukea. Viiva
-
tarkoittaa, että artikkeli on hyödylliseksi havaittu ja merkitty myöhempää käyttöä varten.Artikkelien otsikoita käsiteltäessä ja artikkeleita luettaessa voi käyttää mm. seuraavia käskyjä:
n
p
N
P
j
J
j
, mutta valitsee artikkelin luettavaksi.
l
^
k
t
t
pääsee tilaan, jossa kaikki
otsakkeet näkyvät, ja sitten tästä tilasta normaalitilaan.
a
. Ensin Gnus kysyy ryhmän, johon viesti menee, sitten viestin aiheen. Jakelualue eli distribution on yleensä valmiiksi oikea, eli sen voi kuitata Returnilla. Tämän jälkeen Gnus luo puskurin
*post-news*
,
johon voi viestinsä kirjoittaa. Lähettäminen tapahtuu käskyllä C-c C-c.
Jos lähettää viestinsä useisiin ryhmiin, on ristiinpostitus (cross-post) suositeltavaa, eli lisätään muut ryhmät pilkulla erotettuna
Newsgroups:
-kenttään. Useimmat nyysiohjelmat
osaavat tällöin merkitä viestin luetuksi myös muista ryhmistä, eikä lukijoiden tarvitse katsella samaa artikkelia useasti.
Esimerkki ristiinpostauksesta:
Newsgrops: tky.alayhd.sik,tky.alayhd.yleinen
Ennen varsinaisen artikkelin kirjoittamisen aloittamista hyväksytään vain yksi ryhmä kysyttäessä, mihin ryhmään kirjoitetaan. Muut ristiinpostausryhmät voi kirjoittaa
*post-news*
-puskurin luomisen jälkeen
Newsgroups:
-riville eli siinä vaiheessa, kun on kirjoittamassa itse artikkelia.
Mikäli kotihakemistossa on tiedosto
.signature
sopivilla oikeuksilla varustettuna, Gnus lisää sen artikkelin loppuun automaattisesti. Sopivat oikeudet ovat lukuoikeus tiedostoon ja suoritusoikeus kotihakemistoon.
Artikkelin lähettämisen testausta varten on omat *.test-ryhmänsä, esim. otax.test ja sfnet.test. Muissa ryhmissä kokeiluartikkelit saattavat aiheuttaa kielteisiä reaktioita, ns. "liekitystä" (flame-wars).
Ennenkuin kirjoittaa mitään Otaniemeä pidemmälle pitää harkita kahdesti; kaikista mahdollisista kiistöistä huolimatta kirjoittaja edustaa itsensä lisäksi opinahjoaan ja omaa kansallisuuttaan.
Jos myöhemmin haluaa peruuttaa (cancel) artikkelinsa, se tapahtuu käskyllä
C
artikkelin otsikkotietojen kohdalla (siis iso
C
-kirjain, ei control-näppäin). Peruuttaminen on järkevää esimerkiksi silloin, kun artikkelin sisältö (esim. myynti-ilmoitus) ei enää ole voimassa.
Meilivastauksen kirjoittamiseksi annetaan käsky
r
tai R
. Niiden erona on, että jälkimmäinen lainaa vastaukseen alkuperäisen viestin sisennettynä. Tässä vaiheessa voi muutella haluamiaan otsikkokenttiä, esim. lisätä ylimääräisiä vastaanottajia. Viesti
lähetetään käskyllä C-c C-c.
Samalla tavalla f
tai F
lähettää kommenttiartikkelin. Jälkimmäistä käytettäessä on yleensä syytä editoida lainausta pois niin, että vain olennaisin tulee esille.
Otsikkotietoja voi muutella, vaihtaa vaikka ryhmää tai lisätä muita ryhmiä. Mikäli keskustelu on ollut kovin rönsyilevää, kannattaa välillä korjata aihe
(Subject:
-rivillä) ajankohtaisemmaksi.
Yksittäisen artikkelin voi tuhota eli merkitä luetuksi näppäimellä d
. Kokonaisista kommenttiketjuista pääsee eroon k
:lla ja C-k:lla.
Joskus artikkeleissa on tärkeää tietoa, jota ei kannata tallettaa tiedostoksi, mutta jonka haluaisi muistaa hetken kauemmin. Tällöin voi artikkelin merkitä näppäimellä
u
. Merkki pysyy niin kauan, kunnes artikkeli vanhenee tai tuhotaan käsin d-kirjaimella.
Oli artikkelilla mikä tahansa merkki (luettu, tapettu yms.), sen voi poistaa käskyllä M-u.
Kill-tiedostoa voi editoida Gnusin sisällä. Käsky M-k tekee paikallisen kill-tiedoston, joka koskee vain tiettyä ryhmää, kun taas M-K tekee globaalin, kaikki ryhmät kattavan kill-tiedoston. Tiedoston editointi lopetetaan käskyllä C-c C-c.
Esimerkki kill-tiedostosta:
(gnus-kill "Subject" "testi") ; Merkitsee testiartikkelit tapetuiksi (gnus-kill "From" "Joanna.Oja@hut.fi") ; Merkitsee Joanna Ojan artikkelit tapetuiksi
fg
.Hyvin suurta osaa komentotulkin komennoista voi käyttää Emacsista. Muun muassa tiedostojen käsittely on Dired-moodin kanssa helpommin hahmotettavissa, ja käsiteltäväkseen voi valita mielivaltaisen tiedostoryhmän.
Suoraan komentotulkkiin pääsee poistumatta Emacsista usealla eri tavalla. Näitä keinoja käsitellään seuraavassa.
*Shell Command Output*
.
Jos komennolle annetaan nollasta eroava numeroargumentti, sen tulostus ohjataan aktiiviseen puskuriin kursorin näyttämään paikkaan, esim. M-2 M-! ls
.
Käsky M-| suorittaa Unix-komennon ja antaa sille syötteeksi
alueen (region) sisältämän tekstin ja tulostaa puskuriin
*Shell Command Output*
.
shell
käynnistää tavallisen keskustelevan komentotulkin, joka pyörii yhdessä Emacsin puskurissa. Se on kätevä, jos pitää tallettaa komentojen tulostuksia tai antaa samantyyppisiä komentoja useita. Emacsin totuttujen käskyjen lisäksi ovat käytettävissä shell-moodin omat käskyt, jotka matkivat komentotulkkia.
Emacs ei odota, että shelliä koko ajan käytettäisiin, vaan voit vaihdella puskurista toiseen ilman, että se vaikuttaa shellin toimintaan. Jos haluat useampia aliprosesseja, vaihda puskurin nimeä käskyllä
M-x rename-buffer
ja käynnistä uusi shell.
Voit .cshrc
:ssä määritellä muuttujalla
ESHELL
, mitä komentotulkkia Emacs käyttää,
esim. setenv ESHELL /bin/sh
.
Komento shellille lopetetaan Return-näppäimellä. Ohjelman suoritus jätetään taustalle käskyllä C-c C-z ja keskeytetään käskyllä C-c C-|. Käskylistaus löytyy toimintatilan kuvauksesta C-h m
.
Dired käynnistyy käskyllä
C-x d
(tai toiseen ikkunaan käskyllä
C-x 4 d
). Emacs kysyy (käskyrivillä), mitä hakemistoa halutaan käsitellä. Tässä yhteydessä voidaan ilmoittaa myös tiedostonnimi, joka sisältää
*
-merkin, jolloin merkitys on samanlainen kuin Unixin komentotasolla. Siis esimerkiksi
R*
tarkoittaa kaikkia niitä tiedostoja, joiden nimi alkaa isolla
R
-kirjaimella.
Toisin kuin yleensä Emacsissa, Dired-tilassa näppäiltävät tavalliset merkit eivät kirjoitu puskuriin, eikä Dired-puskuriin ylipäänsä voi kirjoittaa. Sen sijaan useimmat kirjaimet toimivat käskyinä Diredille. Numerot taas toimivat argumentteina käskyille, ohjaten mm. käskyn toistoa. Käskyt kohdistuvat yleensä kursorin osoittamaan tiedostoon.
Eroon Diredistä pääsee poistamalla puskurin komennolla C-x k
.
m
.
Tarkemman käyttöohjeen saa
infopuun solmusta Tree Dired
.
Seuraavassa on tärkeimmät käskyt:
d
~
~
) hävitettäviksi.
u
x
f
o
f
, mutta avaa uuden ikkunan jättäen Dired-ikkunan näkyviin.
c
r
C
U
.
listaaminen poistaa asetetut hävitysmerkinnät.
s
(sort)
voi vaihtaa järjestyksen
viimeisimmän tiedostoon kirjoittamisen hetken mukaiseksi
ja takaisin aakkosjärjestykseen.
r
-käskyllä, vaikka vaihtaa sen tiedostoille kiltisti.
+
-merkillä.
g
:llä.
Haittana on se, että tällöin poistamismerkinnät (D
-merkit) häviävät.
.emacs
olevat käskyt,
jos senniminen tiedosto on käyttäjän kotihakemistossa.
Tällainen tiedosto voidaan haluttaessa perustaa aivan normaalisti Emacsilla.
On melko tavallista, että käyttäjät
kopioivat .emacs
-tiedostoja
toisilta, kokeneemmilta käyttäjiltä.
Tässä on omat vaaransa. Voi tulla
yllätyksiä, jos ei ymmärrä, mitä
.emacs
issa olevat asiat aiheuttavat. Emacsin versionmuutokset
voivat saada aikaan ongelmia, jos .emacs
issa on jotakin
kovin erikoista. Silloin .emacs
in alkuperäinen tekijä ehkä
osaa tehdä tarvittavat korjaukset, mutta tiedoston kopioinut ehkä ei,
eikä hän välttämättä enää tavoita tekijää.
Yleensä siis kannattaa tehdä .emacs
itse tai ainakin ymmärtää
sen sisältö.
Yksinkertaisimmassa tapauksessa .emacs
-tiedostoon
kirjoitettavat käskyt ovat muotoa
(setq
muuttuja arvo)
missä muuttuja on jokin Emacsin tuntemista
muuttujista.
Kirjoittaessasi
.emacs
-alustustiedostoon ole tarkka sulkujen määrästä, hipsujen (heittomerkkien) suunnasta ja siitä, että kommenttimerkki
;
(puolipiste) ei missään vaiheessa vaihdu vaikkapa kaksoispisteeksi.
Seuraavassa on
esimerkki .emacs
in
sisällöstä, jossa on muutamia yksinkertaisia asetuksia. Puolipisteellä alkavat rivit ovat kommentteja, jotka vain kertovat (toivottavasti), mitä sitä seuraavilla riveillä olevat asiat tekevät.
; Tämä asettaa aloituspuskurin moodin tekstimoodiksi. ; Oletusarvoisesti käytettäisiin Lisp-Interaction-modea. (setq initial-major-mode 'text-mode) ; Jokainen uusi puskuri on tekstimoodissa. (setq default-major-mode 'text-mode) ; Tekstimoodi katkaisee pitkät rivit rivinvaihdolla. (setq text-mode-hook '(lambda () (auto-fill-mode 1))) ; Asettaa oikean marginaalin 65. merkin kohdalle (setq default-fill-column 65)
Kaikki muutkin control- ja meta-merkit (ESC-merkit) voidaan kirjoittaa tiedostoon saamalla tavalla kirjoittamalla C-q vain eteen. Täten C-q toimii eräänlaisena lainaamisen (quote) merkkinä.
Mikä hyvänsä ISO-Latin-1-merkistön
merkki voidaan kirjoittaa tiedostoon siten, että
näppäillään C-q ja merkin oktaalikoodi kolmimerkkisenä.
Esimerkiksi kun tiedämme, että
plus-miinusmerkin
±
oktaalikoodi ISO-Latin-1:ssä
on 261, voimme kirjoittaa ±:n tiedostoon näppäilemällä
C-q 261
.
Monien merkkien, esimerkiksi aksentilla varustettujen kirjainten kuten à
kirjoittamiseen on kuitenkin kätevämpää käyttää
iso-accents-mode-toimintatilaa.
Esimerkiksi jos tiedosto on siirretty PC:stä Unix-koneeseen,
saattavat kotoiset ääkkösemme näkyä muodossa \204
, \224
jne.
Kyseessä ovat itse asiassa merkit, joiden oktaalikoodit ovat 204, 224 jne. ja
jotka eivät ISO-Latin-1:n mukaan esitä mitään kirjoittuvaa merkkiä.
Nämä merkit on helppo muuttaa kirjaimiksi käskyllä M-x replace-string
,
joka etsii kursorista eteenpäin kaikki annetunlaiset merkkijonot vaihtaen ne halutuksi.
M-x replace-string
ei kysy erikseen joka muutoksen kohdalla menettelytapaa
kuten kohdassa 5.10.2
kuvattu
M-x query-replace
.
Muuten käskyt toimivat samalla periaatteella.
Kun olet antanut käskyn M-x replace-string
,
Emacs kysyy komentorivillä, mikä merkkijono korvataan.
Jos haluat korvata esimerkiksi muodossa \204
näkyvän merkin
ä
-kirjaimella, kirjoita C-q 204
ja paina
Returnia.
Tämän jälkeen Emacs kysyy, millä korvataan, ja
tähän vastataan antamalla ä
-kirjain ja painamalla
Returnia.
Tämän jälkeen voi siirtyä tiedoston alkuun ja aloittaa korvaamaan
muodossa
\224
näkyvää
merkkiä
ö
-kirjaimella ihan samalla tavalla.
(Vastaavasti voidaan tällaisessa tapauksessa
\216
korvata Ä
:llä,
\231
Ö
:llä,
\206
å
:lla ja
\217
Å
:lla.)
Tekstimoodin voi valita käskyllä M-x text-mode
.
Erityisen mainittavia piirteitä on vain muutama. Tabulaattori sisentää aina tekstiä. Lauseen saa asetettua kauniisti sivun keskelle käskyllä M-S, kun taas M-s keskittää yhden rivin.
M-x auto-fill-mode
muuttaa Emacsin tilan sellaiseksi, että se automaattisesti katkaisee kirjoittamasi rivit. Voit siis kirjoittaa painamatta lainkaan Returnia (paitsi halutessasi aloittaa uuden kappaleen).
Merkiksi em. tilasta ilmestyy tilariville
sivutoimintatilan
kohdalle teksti Fill
.
Takaisin normaalitilaan pääsee antamalla sama käsky uudestaan.
Em. tilassa Emacs ei käsittele tekstiin jo kirjoitettuja rivejä, vaikka ne olisivat ylipitkiä. Sellaiset tilanteet voit itse käsitellä kappale kerrallaan viemällä kursorin jonnekin kappaleen alueelle ja antamalla käskyn M-q.
Huomaa kuitenkin, että Emacs ei lainkaan tavuta sanoja, joten pitkiä sanoja sisältävästä tekstistä voi tulla ikävän näköistä. Voit tietysti itse erikseen korjata pahimmat kohdat.
Jos haluat jatkuvasti käyttää em. tilaa, voit (sen sijaan että aina Emacsin käynnistettyäsi antaisit käskyn
M-x auto-fill-mode
) lisätä alustustiedostoon
.emacs
seuraavat rivit (missä voit korvata luvun 65 haluamallasi rivinpituudella):
;; Jokainen uusi puskuri on tekstimoodissa. (setq default-major-mode 'text-mode) ;; Tekstimoodi katkaisee pitkän rivin rivinvaihdolla. (setq text-mode-hook '(lambda () (auto-fill-mode 1))) ;; Asettaa oikean marginaalin 65. merkin kohdalle (setq default-fill-column 65)
M-x overwrite-mode
Tällöin tilariville ilmestyy
sivutoimintatilan
merkiksi teksti Ovwrt
.
Takaisin normaalitilaan päästään samalla käskyllä.
list-options
.
Se näyttää sekä muuttujan arvon että
muuttujasta annetun dokumentaation - saman, jonka saa käskyllä
C-h v
muuttujan-nimi.
Muuttujien arvoja on helppo muutella
*List Options*
-puskurissa. Näppäimet n
ja p
liikkuvat määrittelystä toiseen, näppäimellä
x
vaihdetaan muuttujan arvoa edestakaisin nil:in ja t:n välillä ja näppäin
s
antaa käskyrivin kautta muuttujalle uuden arvon.
Jos vain haluat asettaa arvon jollekin muuttujalle,
se käy myös tähän tapaan:
anna käsky
M-x set-variable
ja sitten vastaa kysymyksiin variable
ja value
kirjoittamalla kyseisen muuttujan nimi ja sille annettava arvo.
Tällaiset muuttujien arvojen asetukset eivät säily
Emacsin käyttökerrasta toiseen.
Pysyväksi muuttujan arvon asetuksen saa kirjoittamalla
sen asianmukaisessa muodossa
.emacs
-tiedostoon.
display-time
asettaa tilarivin keskelle kellonajan.
Jos haluat mukaan myös päiväyksen, on kätevintä hoitaa asia lisäämällä alustustiedostoon
.emacs
seuraavat rivit:
(setq display-time-day-and-date t) (display-time)
local-set-key
ja jälkimmäinen
M-x global-set-key
. Ensin se kysyy näppäimen, joka halutaan sitoa, ja sitten sen funktion nimen, joka halutaan suoritettavaksi. Lisää tietoa aiheesta löytyy
infopuusta komennolla C-h i
, haaran Emacs
alahaarasta
Rebinding
.
scroll-step
arvoksi halutun rivimäärän,
esim. yksi.
Jos siis haluat vaikkapa pysyväksi sellaisen asetuksen, että
"vierittää" tekstiä vain yhden rivin kerrallaan,
kirjoita
.emacs
-tiedostoon
rivi(setq scroll-step 1)
Ongelmaksi tällöin jää, että ylipitkät rivit tiedostossa voivat sotkea: siirrytäänkin useampia rivejä. Emacsin infossa sanotaan:
Scrolling happens automatically if point has moved out of the visible portion of the text when it is time to display. Usually the scrolling is done so as to put point vertically centered within the window. However, if the variable `scroll-step' has a nonzero value, an attempt is made to scroll the buffer by that many lines; if that is enough to bring point back into visibility, that is what is done.
/p/emacs/lisp
.
Paikalliset ylläpidon asentamat ohjelmat ovat hakemistossa
/p/emacs/lisp/hut
.
Quit
).
C-q -
, arvaus C-s:n lukitsevasta vaikutuksesta oli väärä. Kirjoita tällöin jokin merkki ja poista se sitten (päästäksesi pois
erikoisesta tilasta,
johon C-q sinut vei).
#
eli esim. nimeä foo
vastaava
auto save -tiedosto on #foo#
.
Jos sellainen on olemassa, on ehkä varminta ottaa tiedostosta foo
kopio jollekin sopivalle uudelle nimelle (esim.
cp foo foo-old
) ja sitten muuttaa auto save -tiedoston
nimi tyyliin mv #foo# foo
, jonka jälkeen editointia voi
todennäköisesti jatkaa normaalisti.
^M
Melko usein käy niin, että toisesta tietokonejärjestelmästä
siirretyn tiedoston jokaisen rivin lopussa näyttää olevan
^M
kun sitä katsotaan Emacsilla.
Tämä ei ole vakavaa. Ilmiö johtuu siitä, että eri järjestelmissä on
erilaisia rivinvaihtojen esitysmuotoja, eivätkä ^M
:t
(jotka itse asiassa vain kertovat, että datassa on
ylimääräisiä carriage return -koodeja) vaikuta
yleensä mitään datan käsittelyssä.
Jos kuitenkin ^M
:t vaivaavat sinua, voit poistaa
ne esimerkiksi Emacsilla. K.s
ohjetta tästä dokumentissa
Rivinvaihdot ja kappaleet datan käsittelyssä, joka myös valottaa ongelman taustaa.
(New file)
Auto save file is newer; consider M-x recover-file
recover-file
korvaa alkuperäisen sisällön varmuuskopiolla.
Muista sen jälkeen antaa käsky
M-x auto-save-mode
, sillä em. korvauksen yhteydessä se kääntyy pois päältä.
Auto-saving...
done
, talletus on päättynyt ja kaikki jatkuu normaalisti.
Buffer
XXX has shrunk a lot; not autosaving it.
Command attempted to use minibuffer while in minibuffer
o
:lla käskyriville ja paina C-g.
Core dumped.
~/core
.
Tästä tiedostosta saattaa olla apua asiantuntijalle, jos
hän ryhtyy selvittelemään vikatilannetta.
Error in init file
.emacs
on jotain vikaa.
Korjaa se. Jotta voisit editoida, sinun täytyy alustustiedoston viallisuuden takia
antaa käynnistyskomennossa
valitsin -q
, siis
emacs -q .emacs
.
Varmista mm. etteivät merkit
;
ja :
tai `
ja '
ole menneet sekaisin.
File not found and directory doesn't exist
File not found and directory write-protected
Garbage collecting...
done
, Emacs on saanut siivouksensa tältä erää loppuun ja kaikki jatkuu normaalisti.
Mark set
Mismatched parentheses