Meningen med detta dokument är att den ska beskriva allt man behöver veta om LysKOMs emacslisp-klient för att kunna använda den. Det förutsätts att läsaren känner till GNU-emacs. Om användaren har använt QZ-KOM är detta en fördel, men det är på inget vis nödvändigt för förståelsen av LysKOM.
All utveckling av LysKOMs emacslispklient, lyskom-systemet och i detta dokument nämnda andra klienter är ideelt arbete utfört av medlemmar i Lysator, datorföreningen vid Universitet och Tekniska Högskolan i Linköping.
Om du vill deltaga i arbetet så är det bra om du skaffar dig en ordentlig introduktion till hur systemet fungerar. Om du finns i Linköping så är det enklast att prata med någon av de som varit med och som är ansvariga för det som hittills är gjort. Om du inte finns i Linköping är du utelämnad åt självstudier av de få dokument som finns och källkoden. Jag skulle nog vilja rekommendera ett veckosluts intensivkurs i Linköping för att få riktigt grepp om hur det hela hänger ihop.
Det finns alternativ till LysKOMs emacslispklient som också är fritt tillgängliga. Än så länge har de inte riktigt LysKOMs emacslispklients funktionalitet utan är begränsade i något avseende men det sker utveckling av dem hela tiden.
Samtliga här beskrivna LysKOMklienter har fördelen framför LysKOMs emacslispklient att de är mindre cpu-krävande och därför snabbare.
Den senaste versionen av tty-klienten finns att hämta via ftp från `ftp.lysator.liu.se' i underbiblioteket `/pub/lyskom/tty-client/'
Den som gjort mest i tty-klienten är Thomas Bellman
<bellman@lysator.liu.se>
.
Den som för närvarande gör något och som är ansvarig för de senaste
versionerna är Linus Tolke <linus@lysator.liu.se>
.
Målet med denna klient är att erbjuda ett gränssnitt till lyskom-servern som är bättre än protokollet och det finns redan nu rutiner för cache av personer och möten.
tkom, nilkom, kom++-paketet kräver att C++ och TCL/Tk finns installerat på maskinen men om man vill använda paketet för att bygga en helt egen klient kan man klara sig utan TCL.
Den senaste versionen av kom++-klienten finns att hämta via anonym ftp från `ftp.lysator.liu.se' i underbiblioteket `/pub/lyskom'.
De som för närvarande jobbar med kom++-klienten är Per Cederqvist
<ceder@lysator.liu.se>
och Inge Wallin <ingwa@isy.liu.se>
eller <inge@lysator.liu.se>
.
LysKOM är ett konferenssystem som är inspirerat av KOM, det konferenssystem som skapades av QZ i Stockholm. Orsaken till att LysKOM skrevs var att det KOMsystem Lysators medlemmar hade tillgång till lades ner. QZ-KOM gick att köra på DEC-10 och DEC-20-maskiner och den sista DEC-20-maskinen på LiTH som studenterna hade tillgång till såldes och försvann. KOM hade blivit vanebildande för en del och det bedömdes att en ersättning var nödvändig.
En tidig tanke när vi började jobba med LysKOM var att det skulle gå att ha flera olika användargränssnitt samtidigt. Någon vill se en grafisk struktur på hur inläggen hänger ihop på sin grafiska skärm, någon annan vill kunna fortsätta att använda sin gamla vt100. Det var också klart att systemet skulle köra under UNIX eftersom detta operativsystem bedömdes som vanligt i framtiden. Lysators medlemmar hade dessutom stor erfarenhet av UNIX och Lysator äger ett antal UNIX- maskiner.
Bland annat av dessa orsaker valde vi att använda en server-klientmodell. En central server tar hand om alla inlägg och LysKOM:s hela databas. Mot denna server kan flera stycken klienter koppla upp sig via TCP/IP.
När servern började fungera behövdes det en enkel klient för att kunna testa. Per Cederqvist skrev en enkel klient i emacslisp som sedan byggts på av ett antal lysatormedlemmar. Även personer utanför Lysator har bidragit till utvecklingen med färdiga funktioner och framför allt kommentarer och idéer. Det är detta som idag är LysKOMs emacslispklient.
Servern, databashanteraren, är skriven i C och körs på `varg.lysator.liu.se' (IP-nummer 130.236.254.151). Databasfilen är läsbar för flera av lysators medlemmar, vilket kan tyckas vara en bugg, men den är medveten. Vi vill inte ge någon en falsk känsla av säkerhet och på ett system sådant som Lysators är det alltför många som har privilegier för att man skall kunna garantera någon hemlighet. På andra serverinstallationer i framtiden blir naturligtvis situationen en annan.
Enklast är att köra LysKOM från någon av Lysators UNIX-maskiner. När man har startat emacs räcker det med att skriva:
M-x lyskom RETför att sätta igång. Svara på frågan om server med att trycka RET.
Lägg in
(autoload 'lyskom "~d88perce/lyskom" "Köra LysKOM" t)i din `.emacs'. Starta om emacs eller läs in `.emacs' i din emacs igen. Skriv
M-x lyskom
RET. När du får frågan om server svarar du diag19
och
hoppas att allt fungerar. Kör inte från IDA:s maskiner om de är
nerlastade - vi vill inte att någon ska få för sig att stänga
denna möjlighet att köra LysKOM. På `diag19.ida.liu.se' ligger ett litet
program som reläar anropen vidare till `varg.lysator.liu.se' där
servern ligger.
Om du vill hämta LysKOMs emacslispklient från någonstans utanför LiTH
kan du hämta den senaste versionen via anonym ftp från
`ftp.lysator.liu.se (130.236.254.153)'. Ange din emailadress som
lösenord. Gå ner i directoryt `pub/lyskom/elisp-client' och skriv
code{get lyskom-X.el.gz} där X
är det högsta nummer du kan hitta
i det directoryt. Filen med det högsta numret är alltid den senaste
versionen. När överföringen är klar, bryt förbindelsen genom att skriva
quit
.
Du installerar LysKOMs emacslispklient genom att flytta den hämtade filen till det lokala emacslispbiblioteket `site-lisp' under namnet `lyskom.el' och lägga in en rad
(autoload 'lyskom "lyskom" "Köra LysKOM" t)i filen defaults.el i samma directory.
Om du bara skall installera klienten för dig själv, ett måste om du inte får lov att installera emacslispprogram på systemet så flyttar du istället filen med namnet `lyskom.el' till ditt egna emacslispbibliotek och stoppar in raden ovan i din `.emacs'-fil.
Det kan löna sig att byte-kompilera klienten. See Info file `emacs', node `Lispbibliotek för emacs'.
Denna dokumentation finner du på samma ställe under namnet `elisp-client.info-X.tar.gz' för den infoiserade versionen och `elisp-client.txt-X.gz' för den enkla text-versionen. Detta dokument är ett texinfodokument och om du planerar att skriva ut det på skrivar så kontakta utvecklarna så kan de generera en `.dvi'-fil eller en postscript-fil.
Om Emacs säger "Unknown host"
när du skrivit M-x lyskom RET
och angivit kom.lysator.liu.se
som svar på frågan om vilken server
du vill koppla upp dig mot så beror det på att nameservern på din maskin
inte fungerar som den skall. Du måste du be din systemadministratör att
fixa den.
Om du har en gammal version av emacs kan det hända att den inte använder nameservern för att slå upp namnet och då fixar man det genom att lägga in
130.236.254.151 kom.lysator.liu.sei host-tabellen (2).
I emacs version 19 är en alternativ lösning att ange numret till maskinen som LysKOMservern kör på (`130.236.254.151').
När du har svarat på frågan om server och uppkopplingen mellan klient och server är klar så får du en ny fråga; ditt namn. Det är sed att ange både för och efternamn samt den organisation du arbetar för, t ex
Inge Wallin, ISYOm du inte är från Linköping (3) kan det också vara bra att på något sätt ange vilken stad du normalt finns i, t.ex
Salvador Dalberg, Stacken, StockholmOm det inte fanns någon med det namn du angav så får du bekräfta att du har stavat ditt namn rätt. Därefter får du uppge ett personligt lösenord.
Du blir medlem i mötet `Presentation (av nya) möten' automatiskt när du går in i LysKOM första gången. I det mötet hamnar beskrivningar av nya möten när de skapas och när beskrivningen ändras. Det kan vara bra att i lugn och ro läsa igenom detta möte och efterhand gå med i de möten som du finner intressanta.
För att titta på presentationen för ett möte igen kan man använda
kommandot Återse presentation
.
Debatten är uppdelad i olika möten. Möten är dataenheter som bl.a. har namn, medlemmar och mottagna inlägg. Medlemmarna förväntas vara intresserade av inläggen som skickas till just det mötet och läser dem. Namnen används som en kort presentation av mötet när man skall referera till det, dvs när man går till mötet eller skickar brev till mötet.
Möten har också presentationer som lite mer utförligt beskriver vad mötet är tänkt att handla om.
Det finns inga som helst mekanismer eller garantier för att kolla att medlemmarna i ett möte, och andra också för den delen, skickar inläggen till rätt möte. Det finns möjligheter för administratören av mötet eller författaren av inlägget att flytta inlägget om det hamnat fel men oftast är det författarens ansvar att se till att det hamnar rätt från början.
När LysKOM är klart att ta emot ett kommando skrivs en prompt ut. Den kan se ut på t.ex följande sätt:
Gå till nästa möte - Läsa nästa text - Se tiden -När du ser prompten kan du ge ett kommando. Var snäll mot klienten! Tryck inte på en massa knappar innan du ser prompten! Det blir bara problem om du gör det! Speciellt känslig är den i inloggningsfasen. Kom ihåg att LysKOMs emacslispklient från början var avsedd bara som ett surrogat för den egentliga klienten och att det som du nu kör är en alfarelease.
Om inte allt ryms på skärmsidan så syns en procentsats i mode-raden. Tryck på mellanslag när du läst klart så scrollas nästa sida fram.
Det finns två slags kommandon, dels de som är bundna till enskilda
tangenter, dels de som du måste ange i klartext. Många kommandon kan
anges på båda sätten. För att ange ett kommando med dess fulla namn
trycker du tangenten a, vilket skall uttydas (Något) Annat
,
ett kommando som fanns i gamla QZ-KOM. Detta ger dig en fråga på emacs
meddelanderad och du kan nu trycka ? och få en lista på vilka
kommandon som finns.
Antalet kommandon ökar hela tiden med ökande versionsnummer. Följande kommandon finns i LysKOMs emacslispklient i den version som anges i titeln på detta dokument. Först visas vilken tangent som funktionen ligger på och därefter vad man anger under a. I mötet `LysKOM Elispklient; diskussion och ideer' på Lysators LysKOM-system diskuteras nyheter om klienten. När en ny version släpps annonseras det också i det mötet, för det mesta tillsammans med en lista på de ändringar som är gjorda sen förra versionen.
Läsa nästa inlägg
ån
kan du sedan
återse nästa inlägg.
Gå till nästa möte
Hoppa över alla kommentarer
Endast läsa senaste
Uppskjuta läsning
(Spring till) början av texten
(Spring till) nästa text
Scrolla ner
Du kan alltid få hjälp.
Hjälp
Här är samtliga kommandon som används för att skriva ett inlägg listade.
Skicka brev
Skriva ett inlägg
Kommentera inlägget
Om inlägget skulle ha flera mottagare så får man, för var och en av dessa mottagare en kontrollfråga om man vill att den skall vara kvar som mottagare eller inte. Detta går givetvis att stänga av.
Kommentera föregående inlägg
Återse det kommenterade
) innan man
bestämmer sig för att kommentera.
Fotnot till inlägg
Kommentera inlägget
. Observera att om man inte explicit
anger inläggsnummer skriver man alltid fotnoter till senast lästa
inlägg. Detta innebär att man "tvingas" återse sitt senast skrivna inlägg
innan man kan skriva en fotnot till det.
Personligt svar
Man kan liksom när man skriver kommentarer skriva personligt svar till godtyckligt inlägg genom att antingen skriva inläggsnummer p eller C-u p följt av inläggsnumret och RET.
Personligt svar på föregående inlägg
Du kan lista olika saker med dessa olika kommandona.
Vilka är inloggade
Lista möten
*
) skrivs
ut framför namnet på alla möten som man inte är medlem i.
Lista nyheter
Lista personer
Lista medlemsskap
Lista ärenden
Återse nästa markerade -
.
Här beskriver vi hur du kan bli medlem i ett möte, samt hur du gör för att utträda.
Gå till möte
Om du inte är medlem i mötet så frågar LysKOM om du vill bli medlem
i mötet och om man då svarar j så blir man medlem i mötet på samma
sätt som om man hade gjort m (Bli medlem i möte
). Efter det så går
man till mötet på vanligt sätt.
Bli medlem i möte
100
om du inte har ändrat variabeln
kom-membership-default-priority
som kontrollerar detta.
För att LysKOM skall veta i vilken ordning du vill läsa dina
möten måste du ange det för varje möte du går med i.
Du kan (givetvis) sätta en variabel som kontrollerar detta också,
nämligen kom-membership-default-placement
, men om du inte anger
något så måste du ange det. LysKOM frågar var du vill lägga det.
0 är allra först (före din brevlåda) och det högsta numret
som finns som alternativ är sist i listan.
Om mötet är slutet så kan man inte gå med i det. Detta kommando kan även användas för att ändra prioritet för ett möte som du redan är medlem i.
Utträda ur
Sluta
Om du har inlägg som du börjat skriva på och sedan varken slängt eller skickat in till LysKOM-servern så kommer du att få en extra kontrollfråga om du verkligen vill sluta trots att du har oinskickade inlägg.
Om du väljer att gå ur lyskom genom att avsluta Emacs och har oinskickade buffertar kommer LysKOMs emacslispklient att se till att Emacs betraktar LysKOM som en viktig process. Om du däremot har skickat in eller slängt alla dina inlägg ser LysKOMs emacslispklientent till att Emacs inte betraktar LysKOM som en viktig process. Om du får en kontrollfråga: "Active processes exist; kill them and exit anyway? (yes or no)" innebär det alltså att du har oinskickade inlägg. (4)
Återstarta kom
C-g
@kindex C-g
vid olämpliga tillfällen.
Om klienten hänger sig på detta vis beror det egentligen på att det är en bugg i klienten. Se till att skapa en buggrapport innan du ger det här kommandot. Se även section Buggrapporter.
Se tiden
Få uppmuntran
Få skäll
Vänta på ett inlägg
Om du inte vill att inlägg med låg prioritet, men högre än nästa möte, ska avbryta väntafunktionen så kan du ange prioriteten som måste överskridas med ett prefixargument.
Visa vilkalistan
kom-who-buffer-size-when-displaying
.
Detta fungerar givetvis inte om man har slagit av hanteringen av Vilkabufferten. See section Vilkabufferten
Kasta ut en session
Ändra presentation
Återse text
Återse omodifierat
Återse det kommenterade
Återse alla kommentarer
Återse alla kommentarer rekursivt
Återse urinlägget
Återse nästa
Återse senaste
Om man inte ger något prefixargument sätts N=1
. Om man anger N=0
får man se alla inlägg av X till M. Om N är negativt så får du se
de abs(N) första inläggen av X i mötet M.
Om man inte anger X får man se de senaste N inläggen i mötet M. Default för mötet är det möte du är i. Om man inte anger M får man se de senaste N inläggen av X.
M kan vara din egen brevlåda, men du kan inte återse inlägg till någon annans brevlåda. Det beror på en bug i server som kommer att rättas, förhoppningsvis före sommaren 1991.
Återse igen
Återse hoppa
Återse lista
Återse presentation
Återse träd
Återse urinlägget
+ Återse alla kommentarer rekursivt
för det senast lästa inlägget.
(Återse) Baklänges
Status (för) möte
Om man vill se en lista på alla medlemmar i mötet och hur många olästa de olika personerna har så skall man svara j på frågan. Annars skall man svara n.
Status (för) person
Efter eventuell lapp så kan man få en lista på vilka möten personen är medlem i och hur många olästa han har i dem. Vill man inte ha denna lista skall man svara n på frågan.
Spara text (på fil)
Om man anger ett prefixargument sparas de sista n
inläggen.
Markera (inlägg)
Om man inte har satt variabeln kom-default-mark
till någonting
så markeras inlägget med markeringen 100
. Om man satt variabeln
kom-default-mark
till nil
så frågar den även efter vilket
nummer markeringen skall ha.
Avmarkera (inlägg)
Återse alla markerade
M
eller
Markera (inlägg)
.
Återse markerade
Skapa möte
Utplåna
Radera (text)
Man kan addera en mottagare eller extra kopiemottagare till ett inlägg, en medlem till ett möte eller ett inlägg som kommentar till ett annat inlägg.
Addera mottagare
Du får bara addera möten som du får lov att skriva inlägg i.
Addera extra kopiemottagare
Du får bara addera möten som du får lov att skriva inlägg i.
Subtrahera mottagare
Du får bara ta bort en mottagare om du är organisatör för mottagaren eller författare till inlägget.
Addera kommentar
Subtrahera kommentar
Addera medlem
Uteslut medlem
Börja med nytt namn
Ändra namn
Ändra lösenord
Man kan ändra lösenordet för alla som man är organisatör för. Om man är administratör kan man ändra lösenordet för vem som helst.
Sätt lapp på dörren
Status person
på personen.
Ta bort lapp på dörren
Ändra organisatör
Ändra livslängd
Ändra supermöte
Supermöte för ett möte är det möte till vilket inlägg som inte får skickas till mötet, skickas. Anledningarna till att inlägg inte får skickas till ett visst möte kan vara att det är skrivskyddat och han som försöker skicka in det tillhör inte de tillåtna författarna för det mötet eller att mötet är kommentarsskyddat och då skickas kommentarerna till supermötet.
I nästa version av LysKOM-systemet (Protokoll B) kommer det att vara två olika möten beroende på om mötet är skrivskyddat eller kommentarsskyddat.
Sända meddelande
Därefter frågar LysKOM efter meddelandet som du vill skicka och skickar iväg det till mottagarna.
Prioritera möten
Kill
Yank
C-k och C-y passar bra för att flytta block av möten till olika ställen. u och n är bra för den sista "finjusteringen".
edit-options
moden och ser dessutom
likadan ut förutom det faktum att den bara innehåller de
variabler som är av intresse för LysKOM.
(See Info file `emacs', node `Edit Options'.)
Alla kommandon funkar precis som i edit-options
moden och de
viktigaste är:
nil
t
När du är nöjd med dina inställningar och vill skicka in dem till LysKOM så trycker du C-c C-c.
Om du ångrar dig och inte vill skicka in några värden till LysKOM så trycker du C-c C-k.
Noteras bör att om du ändrar LysKOM-variabler på något annat sätt i din emacs än med kommandona beskrivna ovan så kommer det aktuella värdet att visas i bufferten och sparas.
Om du däremot ändrar värdena i din emacs utan att efter det skicka in värdena (med C-c C-c i denna bufferten) så kommer inställningarna du gjort inte att sparas i LysKOM utan går förlorade.
Övergå till administratörsmod
Övergå till normalmod
Stäng av servern
Sätt loginmeddelande
Ta bort loginmeddelande
När du skall ange ett mötes- eller person-namn så räcker det att skriva en entydig bit av namnet. Till exempel så räcker det (för tillfället) att skriva `ce' för att logga in som `ceder'. Saker inom parentes räknas inte, så `Anders Andersson' och `(Hej på dig) Anders (och) Andersson (!)' är precis samma sak. Ofta kan man skriva `m 10' eller `p 10' i stället för ett möte/en person om man vet att mötet har nummer 10.
Om namnet består av mer än ett ord, t ex för- och efternamn, så behöver bara entydiga delar av resp. delar skrivas. Antag att två personer heter `Lars Aronsson' resp. `Lars Andersson'. `L A' ger ingen entydig matchning av namnet, men `L Ar' eller `L An' (eller `l an') kan bara tolkas på ett sätt. Det räcker alltså i det här fallet att ange 4 tecken för att bestämma vilken person man menar. Detta gäller naturligtvis också för mötesnamn.
För varje inlägg/kommentar man skriver får man upp en ny buffert. Man kan skriva på flera inlägg samtidigt, och det spelar ingen roll i vilken ordning man avslutar dem. Så länge som man har förbindelsen till servern igång så kan man skicka in inläggen.
Överst i bufferten finns ett antal rader som talar om vem, vad eller vilka som blir mottagare, och om det här är en kommentar till en (eller flera) inlägg. Man kan ändra i det här fältet, men man ska vara försiktig. Det finns fyra olika saker som kan stå här:
Mottagare: <nr> Namn Extra kopia: <nr> Namn Kommentar till text nr. Fotnot till text nr.
nr
är ett decimalt tal. Namn
är ett mötesnamn. När man ändrar i de
här fälten behöver man inte skriva så mycket. Det räcker med den
första bokstaven i varje rad och numret. I de två första fallen skall
numret stå inom klamrar. Ett exempel på hur man kan skriva är:
M<6> E<80> K118 K 148 Fotnot 12.
Det här inlägget kommer att ha möte 6
som mottagare. Möte 80
får en
extra kopia. (Den enda skillnaden mellan Mottagare
och Extra kopia
är att när någon kommenterar inlägget kommer kommentarerna bara att gå
till de möten som står som mottagare). Inlägget är en kommentar till
inlägg 118 och 148 och dessutom en fotnot till inlägg 12. (En fotnot och
en kommentar är i stort sett samma sak, men det är bara författaren
till ett visst inlägg som kan skriva en fotnot till den, och fotnoter
till ett inlägg skrivs ut före alla kommentarer).
Klienten litar blint på det nummer man anger. Ingen kontroll görs att det stämmer med det som står efter klamrarna.
Man kan blanda rader av typ M
, E
, K
och F
i vilken ordning som
helst, men det får inte finnas några andra rader före ärenderaden. (Inte
ens en blankrad).
Om man vill skicka inlägget till ett annat möte än dem som står så måste
man alltså veta numret på mötet. Det kan man ta reda på genom att byta
buffert till LysKOM-bufferten (som normalt heter *kom*
om du är kopplad
mot lysators LysKOM-server) och där skriva lm eller lp (Lista möten
resp. Lista personer
). De nummer som skrivs ut är de mötesnummer
som skall användas.
Efter alla M
, E
, K
och F
-rader skall det komma en ärenderad. Den skall
se ut så här:
Ärende: <Här ska du skriva en rubrik>
När du kommenterar ett inlägg får du dess ärende-rad som default.
Sen kommer en rad som bara har till uppgift att skilja texten från rubriken. Efter den raden skriver du ditt inlägg. Du har tillgång till alla vanliga emacs-kommandon.
Det enda som är speciellt är alla LysKOM-kommandona.
För att sända in inlägget trycker du C-c C-c. LysKOM frågar då efter
Ärende:
och du fyller i det. När du trycker RET så skickas inlägget in
till servern. Om allt gick bra så tas edit-bufferten bort och du får
tillbaks LysKOM-bufferten. Inläggsnumret för det skapade inlägget skrivs ut.
Om du när du skall skriva ärendet ser stavfel i inlägget trycker du C-g så kommer du tillbaka i editerings-mode.
Om man ångrar sig och vill slänga inlägget man håller på att skriva trycker man C-c C-k. Då tas bufferten bort, och man kommer tillbaks till LysKOM-bufferten.
Skulle du vilja ha med delar av det inlägg du kommenterar i ditt eget inlägg kan du trycka C-c i k och då kommer hela det kommenterade inlägget att läggas in där du var. Vill du i stället plocka in något annat inlägg så skall du istället trycka C-c i följt av inläggsnumret på det inlägg du vill ha med.
Om du bara vill titta på det inlägg du kommenterar eller fotnoterar
(t ex om du inte har satt flaggan kom-write-texts-in-window
, se
nedan), men inte ha in det i inläggsbufferten så kan du trycka C-c
å k så delas skärmen i två fönster och den kommenterade eller
fotnoterade inlägget visas i det andra fönstret. För att spara plats
så visas endast inlägget och inte texthuvudet.
Om du vill lägga till någon extra mottagare eller kopiemottagare till inlägget trycker du C-c a m resp. C-c a k och så får du ange vem eller vilket möte du skall lägga till.
LysKOMs Emacslispklient upprätthåller en lista på vilka som är inloggade och vad de sysslar med i den så kallade vilkabufferten. Man kan se vad alla gör hela tiden om man har den framme, annars finns den bara i bakgrunden.
Denna finess drar ansenliga mängder extra cpu-kraft från maskinen du kör klienten på. Därför finns det möjlighet att slå av den. Har man väl slagit av den finns de däremot ingen möjlighet att slå på den igen utan att starta om LysKOM.
LysKOMs Emacslispklient har ett antal flaggor för att användaren skall kunna
anpassa uppförandet till sin smak. Flaggorna sparas med kommandot
Ändra variabler
.
Här följer en lista över dessa flaggor samt vilka värden de kan anta och deras betydelse i programmet.
Flaggorna dokumenteras genom att deras namn skrivs ut följt av deras
defaultvärde. I inlägget som förklarar flaggan listas möjliga värden. Om
ett annat värde än defaultvärdet önskas så skall man använda
funktionen Ändra variabler
. Man kan också använda emacsfunktionen
M-X set-variable
men då får man se till att spara variabelns
värde efteråt.
De flaggor som sparas i common
-delen av user-arean är markerade med
common
, de som per default sparas i elisp
-delen med elisp
.
kom-created-texts-are-read
t
(common
)
nil
så markeras alla inlägg som skapas av användaren som
lästa.
kom-reading-puts-comments-in-pointers-last
t
(common
)
nil
så skrivs rader av typen
`Kommentar i text N av NN' i inläggshuvudet. Om icke-nil
så skrivs
dessa rader ut efter själva inlägget.
kom-print-number-of-unread-on-entrance
t
(common
)
nil
så skrivs antalet olästa i ett möte ut så fort
användaren går in i ett möte.
kom-higher-priority-breaks
nil
(elisp
)
nil
t
express
kom-presence-messages
t
(common
)
Om icke-nil
så skriver klienten ut fortlöpande rapporter om vilka
som går in i och ut ur LysKOM.
kom-presence-messages-in-buffer
presence
(elisp
)
Denna flagga reglerar vilka av LysKOMs meddelanden som skrivs in i
själva LysKOM-bufferten. De som inte skrivs in i bufferten fås enbart
på meddelanderaden och övriga skrivs både i meddelanderaden och i
bufferten. Denna flagga kan anta tre värden:
nil
presence
t
kom-show-where-and-what
t
(elisp
)
Om icke-nil
så skriver klienten ut vilken maskin varje användare
kör ifrån samt vad han håller på med när kommandot Vilka är
inloggade
ges.
kom-read-depth-first
t
(common
)
Om icke-nil
så läses kommentarer och fotnoter före nya inlägg.
Detta gör att kommentarsträd söks av djup-först. Om flaggan sätts
till nil
så görs sökningen bredd-först.
kom-dashed-lines
t
(common
)
Om denna variabel är icke-nil
så ramar klienten in
alla inlägg med långa rader av -
.
kom-confirm-multiple-recipients
t
(elisp
)
Om icke-nil
så måste man bekräfta att alla mottagare
skall ha inlägget. Om det bara finns en mottagare frågar den
aldrig.
kom-emacs-knows-iso-8859-1
nil
Denna variabel skiljer sig från andra i det avseendet att den inte lagras i servern utan bara är lokal för just din emacs.
Om variabeln inte är tillnil
så kommer emacsen inte att
konvertera alla tecken den skriver ut till swascii.
Det finns ett antal variabler som man kan styra LysKOMs emacslispklients uppförande med. Dessa är inte flaggor i den meningen att de inte bara kan anta ett av flera fördefinierade värden, utan kan anta nästan vilka värden som helst. Variabler i emacs sätts på samma sätt och sparas på samma sätt som flaggor.
De variabler som sparas i common
-delen av user-arean är markerade
med common
, de som per default sparas i elisp
-delen med elisp
.
kom-mercial
"Väntar.
" (elisp
)
kom-default-mark
100
(common
)
nil
så måste den vara ett nummer mellan 1
och 255. Det är den markering som klienten sätter. är den nil
däremot så frågar klienten efter vilken markering vi skall ha.
kom-page-before-command
nil
(elisp
)
t
kommer klienten att göra en
(recenter 0)
före varje kommando börjar utföras. Om
flaggan är en lista av symboler kommer klienten att göra
(recenter 0)
före varje kommando som finns i denna lista. Detta
för att utmatningen från alla kommando skall hamna på samma
ställe på skärmen.
kom-write-texts-in-window
nil
(elisp
)
nil
så används LysKOM-fönstret även som edit-fönster. Om det är en
buffert eller en sträng så kommer det fönster som denna buffert
visades i att användas. Om 'other så kommer emacs att välja ett
annat fönster eller skapa ett nytt fönster för denna editering.
kom-membership-default-priority
100
(elisp
)
nil
så frågar LysKOM efter en
prioritet varje gång istället.
kom-membership-default-placement
last
(elisp
)
Följande värden kan användas:
first
last
0
respektive ett stort tal kommer att ha samma effekt som
first
respektive last
.
lyskom-header-separator
elisp
)
Detta är den sträng som skiljer texten från huvudet
när man skriver inlägg.
Default:
"--- Skriv nedan. Skicka in=C-c C-c, Avbryt=C-c C-k, Annat se C-h m ---"
lyskom-prompt-text
" - "
(elisp
)
Prompten slutar med texten i denna variabel när LysKOM är redo att
ta emot kommandon.
lyskom-prompt-executing-default-command-text
"."
(elisp
)
När man ger defaultkommandot med SPC, LFP eller RET
så bytas slutet av prompten till denna text.
kom-who-buffer-size-when-displaying
10
(elisp)
Antalet rader som Vilkabufferten skall visas med när man ger kommandot
Visa vilkalistan
. See section Vilkabufferten och
section övriga kommandon i LysKOM..
kom-do-when-starting
nil
(elisp
)
Denna variabel innehåller kommandon som skall utföras automatiskt
när man loggar in. Variabeln är en lista av kommandon.
Exempel:
Om du stoppar in:
(setq kom-do-when-starting '("v" "ln"))i din `.emacs' så händer följande när du går in i LysKOM:
Gå till nästa möte - Vilka är inloggade <Här får du se vilka som är inloggade> Gå till nästa möte - Lista nyheter <Här får du se din lista av nyheter> Gå till nästa möte -
kom-do-when-done
(kom-review-all-marked-texts kom-display-time)
(elisp
)
Denna variabel innehåller kommandon som utförs då man har läst
klart alla inlägg. Varje kommando i listan skriver först ut en
prompt och där kan du naturligtvis göra alla de vanliga kommandona
också.
Om ett element i kom-do-when-done
är en lista, kommer elementen
i den listan att utföras i tur och ordning. Det sista elementet
i kom-do-when-done
kommer att upprepas tills man går ur LysKOM.
Ett exempel klargör nog dess funktion bäst.
Om man har stoppat in
(setq kom-do-when-done '("åm" "t" ("q" "fu")))i sin .emacs kommer följande beteende att uppvisas när man läst slut: @nobreak
Läsa nästa text - ; Detta är det sista inlägget. <Här läser vi inlägget.> Återse (alla) markerade - Återse nästa text - ; Vi har bara ett markerat. Se tiden - ; Innan vi hinner trycka SPC här, ; kommer det ett nytt inlägg, varvid ; prompten byts till... Läsa nästa text - Se tiden - ; Nu har vi läst inlägget. Sluta - ; Vi svarar no. Kommandot:"fu" - ; Tangentbordsmakro ; Här får du uppmuntran. Sluta - ; Här kommer "sluta" tillbaka. ; Vi svarar no här också. Kommandot:"fu" ; Och "fu" dyker upp igen. Sluta - ; Och sluta igen.
Elementen måste vara kommandon i LysKOM, dvs de måste kunna tolkas som tangentbordsmakron eller som emacs-funktioner.
lyskom-fetch-map-nos
50
(elisp
)
Anger hur stora mappar vi skall hämta i taget.
lyskom-prefetch-conf-tresh
50
(elisp
)
Avgör om vi skall fråga efter fler möten från servern.
Om de olästa inläggen i de hittills hämtade mötena
är färre än detta värde så hämtar vi en bunt till.
lyskom-prefetch-confs
10
(elisp
)
Avgör hur många möten vi skall fråga efter i taget.
lyskom-prefetch-texts
3
(elisp
)
Avgör hur många inlägg som skall hämtas i förväg.
Det finns en del hookar i LysKOMs emacslispklient. En hook är en variabel som användaren kan definiera till en funktion. Varje hook hör ihop med en speciell företeelse som LysKOMs emacslispklient gör. Om hooken är satt så exekveras funktionen som den är satt till när detta händer. För närmare information om vad en hook är kan du läsa emacs- dokumentationen. (See Info file `elisp', node `Hooks'.)
De hookar som sparas i common
-delen av user-arean är markerade med
common
, de som per default sparas i elisp
-delen med elisp
.
lyskom-init-hook
lyskom-mode-hook
lyskom-new-text-hook
(elisp
)
Om man inte vill att klienten sedan skall skriva ut meddelandet:
`Text 4711 är skapad' så måste man sätta den lokala variabeln
no-message
till någonting non-nil
i denna hook. Man kan
använda sig av att den lokala variabeln text-stat
är bunden
till text-status för det inlägg som förorsakar att hooken körs.
lyskom-who-info-has-changed-hook
(elisp
)
lyskom-edit-mode-mode-hook
Ex:
(setq lyskom-edit-mode-mode-hook 'swedish-mode)Detta exempel förutsätter dock att du har en swedish-mode definierad.
Om du binder om tangenter till att generera andra bokstäver i denna mode så kommer de inte bara att gälla i edit-bufferten utan även i minibufferten när du ändrar ärendet.
lyskom-edit-mode-hook
auto-save-mode
eller sätta fill-column
.
Inte att förväxla med lyskom-edit-mode-mode-hook
.
lyskom-prioritize-mode-hook
kom-quit-hook
kom-after-command-hook
KOMSERVER
KOMSERVER
är satt så slipper användaren
mata in vilken server som skall användas vid första inloggningen. Annars
är default `kom.lysator.liu.se'.
KOMNAME
KOMNAME
är satt så frågar klienten inte
efter ditt namn vid första inloggningen.
KOMPASSWORD
KOMPASSWORD
är satt så frågar inte klienten
efter ditt lösenord vid första inloggningen. Det är ganska olämpligt
att ha KOMPASSWORD
satt utan att samtidigt ha KOMNAME
satt. Observera att på vissa UNIX-system så kan vem som helst se dina
environmentvariabler med hjälp av ps -axeww
.
Det finns troligtvis många fel i klienten. Om du stöter på något som borde fungera annorlunda, eller som inte fungerar alls, så skriv ett mail till `bug-lyskom@lysator.liu.se'. Synpunkter på den här texten och systemet i övrigt kan också skickas dit.
En buggrapport skall innehålla information om:
Det är bra om buggrapporten innehåller all tillgänglig information från
din körning. Dvs att du har kört funktionen kom-bug-report
och
skickat med resultatet. Annars måste det till en extremt utförlig
beskrivning på hur felet uppkom för att vi skall ha någon som helst
möjlighet att veta vad det handlar om.
Om du skulle råka fixa felet själv så skicka med en context-diff så kan vi lätt applicera den.
Om du inte har tillgång till mail så kan du skicka dina buggrapporter med vanligt brev till:
Lysator c/o ISY Linköpings University S-581 83 Linkoping SWEDEN
Observera att det faktum att du skickar in en buggrapport inte på något sätt är en garanti för att buggen kommer att fixas till en senare version av klienten, eller ens att det någonsin blir en senare version av klienten.
Om du däremot undviker att skicka in en buggrapport så finns det en möjlighet att ingen någonsin får reda på just din bugg.
Om du tvunget vill ha en viss bugg rättad så finns det företag som åtar sig sådant arbete. Skicka brev till `bug-lyskom@lysator.liu.se' så kan vi förmedla en sådan företagskontakt.