Emacs-opas, luku 7 Viestintä:

Nyysiohjelma Gnus

Yleistä Gnusista

Gnus on Emacsin sisällä käytettävä nyysiohjelma eli väline viestien lukemiseen nyyseistä ("newseistä", "uutisryhmistä") ja viestien kirjoittamiseen sinne. Monien mielestä Gnus on kätevämpi kuin esimerkiksi erillinen, suoraan Unixin komentotasolta käynnistettävä nyysiohjelma rn.

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.orgista, jossa on laaja Gnus Manual.

Käynnistys ja lopetus

Gnus käynnistyy käskyllä M-x 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.

Apua!

Kaikissa Gnusin puskureissa toimivat seuraavat avunpyyntökäskyt:
?
Antaa käskyriville yhteenvedon tärkeimmistä näppäimistä.
C-h m
Antaa toimintatilan kuvauksen.
C-c TAB
Käynnistää Emacsin infon ja näyttää Gnusin käyttöohjeen, eli siis sama kuin C-h i ja m gnus.

Yksinkertainen käyttö

Kaikkein yksinkertaisinta (mutta ei suinkaan tehokkainta) on käyttää pelkkää välilyöntiä käskynä Gnusin sisällä. Tämä perustuu siihen, että välilyönnillä on Gnusissa monta vaikutusta tilanteen mukaan: Ryhmätilassa voi siirtyä seuraavaan ryhmään 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:

Unixin komentotulkki.
Tältä tasolta voidaan käynnistää Emacs komennolla emacs tai, jos Emacs oli aiemmin käynnistetty ja sitten keskeytetty C-z:lla, komennolla fg.
Emacsin perustaso.
Tältä tasolta voidaan käynnistää Gnus käskyllä C-u M-x gnus tai M-x gnus. Tältä tasolta päästään Unixin komentotulkin tasolle esim. tilapäisesti käskyllä C-z.
Gnusin ryhmätaso.
Tällä tasolla näkyy lista ryhmien nimistä ja ryhmiin liittyviä muita tietoja. Toimintoja: Ryhmätasosta kerrotaan enemmän seuraavassa kohdassa 7.4.5 Ryhmien hallinta.
Otsikko- ja artikkelitaso
Tälle tasolle tultaessa näkyy lista artikkelien otsikkotiedoista. Artikkeli voidaan avata luettavaksi, jolloin ruutu jakautuu kahtia niin, että yläosassa on em. lista ja alaosassa itse artikkeli tai osa siitä. Tämä taso siis oikeastaan sisältää kaksi loogisesti eri tasoa, otsikkotason ja artikkelitason. Toimintoja: Otsikko- ja artikkelitasosta kerrotaan enemmän kohdassa Yhden ryhmän artikkelien hallinta.

Ryhmien hallinta (ryhmätason komennot)

Allaolevassa esimerkissä on osa otaxin tarjoamista ryhmistä. Numero ilmaisee, montako lukematonta artikkelia on ryhmässä. Tähti * 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: control
Ryhmä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.

Yhden ryhmän artikkelien hallinta (artikkelitason komennot)

Esimerkki yhden ryhmän (otaxin ryhmä otax.ekakerta) otsikkolistauksesta:
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; Sanasto
Yllä 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ä:

SPC
Vierittää artikkelia ruudullisen eteenpäin.
DEL
Vierittää artikkelia ruudullisen taaksepäin.
RET
Vierittää artikkelia yhden rivin eteenpäin.
n
Siirtyy seuraavaan lukemattomaan artikkeliin.
p
Siirtyy edelliseen lukemattomaan artikkeliin.
N
Siirtyy seuraavaan artikkeliin, oli se luettu tai ei.
P
Siirtyy edelliseen artikkeliin, oli se luettu tai ei.
C-n
Siirtää kursorin seuraavan otsikon kohdalle.
C-p
Siirtää kursorin edellisen otsikon kohdalle.
M-n
Siirtää kursorin seuraavan lukemattoman artikkelin otsikon kohdalle.
M-p
Siirtää kursorin edellisen lukemattoman artikkelin otsikon kohdalle.
j
Hyppää annetulla numerolla määrättyyn artikkeliin (jump).
J
Kuten j, mutta valitsee artikkelin luettavaksi.
l
Palaa viimeksi luettuun artikkeliin.
^
Näyttää sen artikkelin, johon tämä artikkeli on vastaus (follow-up). Näyttää siis parent-artikkelin ("isäartikkelin").
k
Merkitsee tällä samalla otsikolla olevat artikkelit tapetuiksi ja valitsee seuraavan otsikon luettavaksi (kill).
C-k
Merkitsee tällä otsikolla olevat artikkelit tapetuiksi.
t
Vaihtaa (toggle) artikkelin otsakkeiden (headers) näyttämisen tilan. Normaalisti Gnus näyttää vain eräät hyödyllisimmät otsakkeet, ja käskyllä t pääsee tilaan, jossa kaikki otsakkeet näkyvät, ja sitten tästä tilasta normaalitilaan.

Artikkelin kirjoittaminen

Artikkelin aloittaminen tapahtuu näppäimellä 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.

Artikkeliin vastaaminen

Artikkeliin voi vastata lähettämällä meiliä kirjoittajalle (reply) tai sitten kommentoida julkisesti (follow-up) ryhmässä. Tilanteesta riippuu, kumpi on oikea tapa.

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.

Artikkelien jatkokäsittelyä

Artikkelin voi tallettaa itselleen käskyllä C-o. Käsky käyttää tallettamiseen normaalia Unixin mailformaattia.

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-tiedosto

Jos joku kirjoittaja on raivostuttava tampio, hänet voi laittaa kill-tiedostoon. Se tarkoittaa ettei hänen juttujansa tarvitse lukea, vaan Gnus automaattisesti merkitsee ne "tapetuiksi". Myös joitakin avainsanoja sisältävät aiheet voidaan lisätä kill-tiedostoon.

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