1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-23 07:19:15 +00:00
emacs/etc/TUTORIAL.se
2002-09-05 02:42:15 +00:00

1091 lines
45 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Detta är den Svenska användarhandledningen till Emacs. I slutet finns
kopieringsvillkoren. Copyright (c) 1985, 1996, 1998, 2001, 2002 Free
Software Foundation, Inc.
Emacs-kommandon innebär ofta användning av kontrolltangenten (vanligen
märkt CTRL eller CTL) eller META-tangenten (på vissa tangentbord märkt
ALT eller EDIT). Vi använder här följande förkortningar:
C-<chr> håll ner kontrolltangenten samtidigt som du skriver bokstaven
<chr>. C-f betyder: håll ner kontrolltangenten och tryck f.
M-<chr> håll ner META-tangenten samtidigt som du skriver <chr>. Om
META-tangent saknas trycker du <ESC>, ESC-tangenten, släpper
den och trycker sedan <chr>.
Viktigt: För att avsluta Emacs trycker du C-x C-c (två tecken).
Tecknen ">>" i vänstermarginalen anger att du kan prova ett
kommando. Till exempel:
<<Tomma rader sätts in runt nästa rad när help-with-tutorial aktiveras>>
[Tomma rader av pedagogiska skäl. Texten fortsätter nedanför.]
>> Tryck C-v (View next screen) för att hoppa till nästa skärmbild.
Prova nu. Håll ned kontrolltangenten och tryck v. Gör så i
fortsättningen när du är färdig med en skärmbild.
Notera att det är ett överlapp på två rader när du byter från
skärmbild till skärmbild. Detta är för att behålla sammanhanget när du
bläddrar framåt i filen.
Det första du behöver veta är hur du manövrerar från plats till plats
i texten. Du har redan lärt dig hur du flyttar en skärmbild framåt,
med C-v. För att flytta dig en skärmbild bakåt trycker du M-v. (Håll
ned META-tangenten och tryck v eller tryck <ESC>v om du inte har
META-, EDIT- eller ALT-tangent.)
>> Prova att trycka M-v och C-v några gånger.
* SAMMANFATTNING
----------------
Följande kommandon är bra för att se hela skärmbilder:
C-v Flytta en skärmbild framåt.
M-v Flytta en skärmbild bakåt.
C-l Rita om skärmen och placera texten där markören står
mitt på skärmbilden. (Det är KONTROLL-L, inte
KONTROLL-1.)
>> Leta reda på markören och se vad som står där. Tryck sedan C-l.
Hitta markören igen och notera att det är samma text som står kring
markören nu.
* GRUNDLÄGGANDE MARKÖRRÖRELSER
------------------------------
Att flytta sig från skärmbild till skärmbild kan vara bra, men hur
förflyttar man sig till en speciell plats på skärmen?
Det finns flera sätt att göra detta på. Det vanligaste är att använda
kommandona C-p, C-b, C-f och C-n. Vart och ett av dessa kommandon
flyttar markören en rad eller en kolumn i en bestämd riktning på
skärmen. Här visas dessa fyra kommandon och i vilken riktning de
flyttar markören:
Föregående rad, C-p
:
:
Bakåt, C-b .... Nuvarande markörposition .... Framåt, C-f
:
:
Nästa rad, C-n
>> Flytta markören till linjen mitt i diagrammet genom att använda C-n
och C-p. Använd sedan C-l för att centrera diagrammet på
skärmbilden.
Detta är säkert lite enklare att förstå om du tänker på dessa
förkortningar: P för föregående (previous), N för nästa (next), B för
bakåt (backward) och F för framåt (forward). Detta är de grundläggande
kommandona för att flytta markören och du kommer säkert att använda
dem hela tiden, så det är en stor fördel om du lär dig dem nu.
>> Gör några C-n så att du kommer ned till den här raden.
>> Flytta dig in i raden med hjälp av några C-f och sedan uppåt
med några C-p. Lägg märke till vad C-p gör när markören står mitt
på en rad.
Textrader är åtskilda med radslutstecken. Den sista raden i filen
avslutas också vanligtvis med ett radslut men Emacs kräver inte att
den gör det.
>> Prova med C-b i början av en rad. Detta gör att markören
flyttas till slutet av den tidigare raden. Detta är för att den
flyttar markören över radslutstecknet.
C-f flyttar också över radslut, precis som C-b.
>> Gör några fler C-b så att du får en känsla för var markören
är. Tryck sedan några C-f tills du kommer till slutet av
raden. Tryck ytterligare en C-f så att du flyttar markören till
nästa rad.
När du flyttar markören förbi toppen eller botten av skärmbilden
kommer texten utanför skärmen att komma fram. Detta kallas "rullning"
och gör det möjligt för Emacs att flytta markören utan att den
försvinner ut ur skärmbilden.
>> Prova att flytta markören förbi skärmbildens nederkant med hjälp av
C-n och se vad som händer.
Om det går för sakta att flytta markören ett tecken i taget kan du
flytta den ett ord. M-f flyttar markören ett ord framåt och M-b
flyttar den ett ord bakåt.
>> Prova några M-f och M-b.
Om markören står mitt i ett ord kommer M-f att flytta markören till
slutet av ordet. Om du står mitt emellan två ord kommer M-f att flytta
markören till slutet av nästa ord. M-b fungerar på samma sätt men i
motsatt riktning.
>> Tryck M-f och M-b några gånger och skifta markörposition med några
C-f och C-b så att du ser hur M-f och M-b uppför sig vid olika
placeringar av markören både i och mellan ord.
Lägg märke till likheten mellan C-f och C-b å ena sidan och M-f och
M-b å den andra. Ofta används META-kommandon till språkrelaterade
operationer (ord, stycken, avsnitt), medan kontrollkommandon används
till grundläggande operationer som inte beror av vad man redigerar
(bokstäver, rader, etc.).
Denna likhet finns också mellan rader och stycken: C-a och C-e flyttar
markören till början av en rad eller till slutet av en rad, medan M-a
och M-e flyttar den till början respektive slutet av ett stycke.
>> Prova några C-a och sedan några C-e.
Prova också några M-a och sedan några M-e.
Se hur efterföljande C-a efter varandra inte gör något, medan flera
M-a fortsätter att flytta markören till nästa stycke. Även om detta
inte verkar självklart är det ganska naturligt.
Platsen där markören är i texten kallas också för "arbetspunkt"
(point). Eller omskrivet: Markören visar på skärmen var arbetspunkten
är i texten.
Här är en kort sammanfattning av de enklaste markörförflyttnings-
kommandona, inklusive ord- och styckesförflyttningskommandon:
C-f Flytta markören ett steg framåt
C-b Flytta markören ett steg bakåt
M-f Flytta markören ett ord framåt
M-b Flytta markören ett ord bakåt
C-n Flytta markören till nästa rad
C-p Flytta markören till föregående rad
C-a Flytta markören till början av raden
C-e Flytta markören till slutet av raden
M-a Flytta markören till början av meningen
M-e Flytta markören till slutet av meningen
>> Prova alla dessa kommandon några gånger för tränings skull.
Dessa är de kommandon som används mest.
Två andra viktiga markörrörelsekommandon är M-< (META mindre-än), som
flyttar markören till början av texten, och M-> (META större-än), som
flyttar den till slutet av texten.
På en del tangentbord är "<" placerad över komma, så att man måste
använda skift för att få fram den. På dessa tangentbord måste man
också använda skift för att skriva M-<. Utan skifttangenten skulle det
bli M-komma.
>> Prova M-< nu för att flytta markören till början av vägledningen.
Använd sedan C-v för att flytta markören tillbaka hit igen.
>> Prova också M-> för att flytta markören till slutet av vägledningen.
Använd sedan M-v för att flytta markören tillbaka hit igen.
Du kan också flytta markören med hjälp av piltangenterna, om
terminalen har piltangenter. Vi föreslår att du lär dig C-b, C-f, C-n
och C-p av tre skäl. För det första kommer de att fungera på alla
slags terminaler. För det andra kommer du att finna, när du har fått
lite träning i att använda Emacs, att det går mycket snabbare att
använda kontrollfunktionerna än piltangenterna (för att du undviker
att ändra fingersättningen). Den tredje anledningen är att när man har
lärt sig att använda kontrolltangenten blir det lättare att lära sig
de mer avancerade kontrollfunktionerna.
De flesta kommandon i Emacs tar ett numeriskt argument och för de
flesta kommandon leder detta till att de repeteras. Ett numeriskt
argument anges genom att du skriver C-u och sedan talet, innan du
skriver kommandot. Om du har en META- (eller EDIT- eller ALT-) tangent
så finns det ett annat alternativ för att ge numeriska argument: skriv
talet medan du håller ned META-tangenten. Vi föreslår att du använder
C-u för det fungerar på alla slags terminaler. Det numeriska
argumentet kallas också för "prefixargument" eftersom det skrivs före
kommandot.
Till exempel: C-u 8 C-f flyttar markören åtta steg framåt.
>> Prova C-n eller C-p med ett numeriskt argument så att du
kommer så nära den här raden som möjligt med ett enda kommando.
De flesta kommandon använder det numeriska argumentet för ett
repeterat utförande men det finns kommandon som använder det
annorlunda. Flera kommandon, men inga av dem du lärt dig hittills,
använder det som en flagga. Med ett prefixargument, och oberoende av
dess värde, gör kommandot något annat.
C-v och M-v finns med bland dessa undantag. Om man ger ett argument
till ett av dessa kommandon kommer skärmbilden flytta sig upp eller
ned så många rader som argumentet anger, istället för så många
skärmbilder. Till exempel kommer C-u 8 C-v flytta skärmbilden 8 rader
uppåt.
>> Prova C-u 8 C-v nu.
Detta borde ha flyttat skärmbilden 8 rader uppåt. Om du önskar flytta
tillbaka igen är det bara att ge samma argument till M-v.
Om du använder Emacs under ett fönstersystem, som X11 eller
MS-Windows, finns det troligen ett rektangulärt område på vänster sida
av Emacs-fönstret, en så kallad rullningslist. Genom att klicka i den
med musen kan du rulla texten.
>> Prova att trycka med den mellersta musknappen i det utvalda området
på rullningslisten. Detta bör flytta skärmbilden till en plats i
texten beroende på var i rullningslisten du trycker.
>> Prova att flytta musen upp och ner medan du håller ner den
mellersta musknappen. Du ser att texten rullar upp och ner beroende
på hur du för musen.
* OM EMACS HÄNGER
-----------------
Om Emacs slutar att reagera på kommandon kan du lugnt stoppa dem genom
att trycka C-g. Du kan också använda C-g för att stoppa ett kommando
som tar för lång tid att utföra.
Det är också möjligt att använda C-g för att avbryta ett numeriskt
argument eller början på ett kommando som du inte önskar att utföra.
>> Skriv C-u 100 för att ge ett numeriskt argument på 100 och tryck
C-g. Tryck nu C-f. Markören skall nu flytta sig bara ett steg, för att
du avbröt argumentet med C-g.
Om du av misstag slår <ESC> blir du kvitt detta med ett C-g.
* SPÄRRADE KOMMANDON
--------------------
En del Emacs-kommandon är "spärrade" så att nybörjare inte skall
använda dem av misstag.
Om du provar ett av dessa spärrade kommandon kommer Emacs ge ett
meddelande som berättar vilket kommando det är och kommer att fråga om
du verkligen vill fortsätta och utföra detta kommando.
Om du verkligen önskar att utföra kommandot trycker du mellanslag som
svar på frågan. Normalt, om du inte önskar att utföra detta kommando,
svarar du "n" på frågan.
>> Skriv C-x C-l (som är ett spärrat kommando).
Skriv n som svar på frågan.
* FÖNSTER
---------
Emacs kan ha flera fönster och varje fönster kan visa sin egen text.
Vi kommer förklara senare hur man använder flera fönster. Här skall vi
förklara hur man blir av med extra fönster för att komma tillbaka till
det grundläggande läget med endast ett fönster. Det är enkelt:
C-x 1 Ett fönster (dvs. ta bort alla andra fönster).
Det är KONTROLL-x följt av siffran 1. C-x 1 utvidgar fönstret där
markören står så att det fyller hela skärmbilden. Alla andra fönster
tas bort.
>> Flytta markören till den här raden och tryck C-u 0 C-l.
>> Tryck C-h k C-f.
Se hur det här fönstret krymper samtidigt som ett nytt uppträder
för att visa dokumentationen för C-f-kommandot.
>> Slå C-x 1 och se hur dokumentationsfönstret nu försvinner.
Kommandot skiljer sig lite från andra kommandon du har lärt dig
eftersom det består av två tecken. Det startar med tecknet
KONTROLL-x. Det är faktisk många kommandon som startar med KONTROLL-x
och många av dem har med filer, skärmbilder och liknande saker att
göra. Dessa kommandon är två, tre eller fyra tecken långa.
* SKRIVA OCH TA BORT TEXT
-------------------------
Om du önskar att sätta in text är det bara att skriva in
texten. Tecken som du kan se, så som A, 7, *, etc. tolkas som text och
sätts in direkt. Skriv <Return> (retur-tangenten) för att sätta in en
radbrytning.
Du kan radera det sista tecknet du skrev genom att trycka <Delete>.
<Delete> är en tangent på tangentbordet, som kan vara märkt "Del". I
några fall fungerar också "backsteg" som <Delete> men inte alltid!
Generellt raderar <Delete> tecknet precis före den aktuella
markörspositionen.
>> Gör detta nu: Skriv in några tecken och ta bort dem genom att
använda <Delete>. Var inte rädd för att skriva i den här filen, du
kommer inte att kunna förändra originalet till vägledningen. Detta
är bara en lokal kopia.
När en rad blir för lång för att rymmas på en skärmbredd så fortsätter
den på raden under. Ett bakstreck ("\") (eller om du kör under ett
fönstersystem, en liten böjd pil) i slutet av högermarginalen
indikerar att raden fortsätter.
>> Skriv in lite text så att du kommer till slutet av raden och
fortsätt att skriva lite till. Du kommer då att se hur
fortsättningstecknet ser ut.
>> Använd <Delete> för att radera texten tills raden ryms på en
skärmbredd igen. Fortsättningstecknet kommer då att försvinna.
Du kan radera radbrytning precis som andra tecken. Genom att radera
radbrytningen mellan två rader slås dessa samman till en. Om
resultatet av denna sammanslagning blir för stor för att passa inom en
skärmbredd, så kommer den att visas med ett fortsättningstecken.
>> Flytta markören till början av en rad och tryck <Delete>.
Detta kommer att klistra ihop raden med raden över.
>> Tryck <Return> för att sätta in radbrytningen du tog bort.
Tänk på att de flesta Emacs-kommandon kan ta numeriska argument. Detta
gäller också texttecken. Genom att repetera ett texttecken kommer det
skrivas flera gånger.
>> Prova det nu: Skriv C-u 8 * för att sätta in ********.
Du har nu lärt dig de mest grundläggande sätten att skriva något i
Emacs och att rätta fel. Du kan radera ord och rader också. Här är en
översikt över kommandon för radering:
<Delete> raderar tecknet som står precis före markören
C-d raderar tecknet som står precis under markören
M-<Delete> raderar ordet precis före markören
M-d raderar ordet precis efter markören
C-k raderar från markören till slutet av raden
M-k raderar till slutet av stycket
Lägg märke till att <Delete> och C-d kontra M-<Delete> och M-d följer
mönstret som började med C-f och M-f. (<Delete> är inte precis
ett kontrolltecken men låt oss inte bry oss om det.) C-k och M-k
fungerar på samma sätt som C-e och M-e (nästan).
Du kan också ta bort vilken del som helst av bufferten med hjälp av
följande allmänna metod. Flytta till ena änden av det område du vill
ta bort och tryck C-@ eller C-mellanslag. Flytta till andra änden av
området och tryck C-w. Detta tar bort all text mellan de två
positionerna.
>> Flytta markören till bokstaven D i föregående stycke.
>> Tryck C-mellanslag. Emacs skall nu visa meddelandet "Mark set"
längst ner på skärmen.
>> Flytta markören till bokstaven o i ordet metod på andra raden i
stycket.
>> Tryck C-w. Detta tar bort texten från och med D fram till just före
o.
Skillnaden mellan att "ta bort" (killing) och "radera" (deleting) text
är att "borttagen" text kan hämtas tillbaka, medan raderad text inte
kan det. Återinsättning av borttagen text kallas "återhämtning"
(yanking). Generellt kan man säga att kommandon som tar bort fler än
ett tecken sparar undan texten (så att den kan återhämtas) medan
kommandon som bara raderar ett tecken eller tomma rader och mellanrum
inte sparar någonting (och den texten kan alltså inte återhämtas).
>> Flytta markören till början av en rad som inte är tom.
Tryck C-k för att ta bort texten på raden.
>> Tryck C-k en gång till. Du kommer nu se att den raderar den tomma
raden som var kvar.
Lägg märke till att ett enstaka C-k bara raderar texten på raden och
att det andra C-k raderar själva raden och flyttar upp texten på raden
under ett steg. C-k hanterar numeriska argument lite speciellt. Den
raderar så många rader OCH innehållet i dem. Detta är alltså inte bara
en repetition av kommandot. C-u 2 C-k raderar två rader samt de tomma
raderna, medan C-k två gånger inte kommer att göra det.
Att sätta in borttagen text kallas att "återhämta" den (yanking).
(Tänk på det som att du rycker, eller drar, tillbaka någon text som
tagits bort.) Du kan antingen hämta tillbaka borttagen text till samma
plats som där den blev borttagen, eller så kan du sätta in den på en
annan plats i bufferten eller till och med i en helt annan fil. Du kan
också hämta tillbaka den flera gånger så att du får flera lika
förekomster av den.
Kommandot för att hämta tillbaka text är C-y. Kommandot hämtar
tillbaka den sist borttagna texten och placerar den där markören är.
>> Prova: Gör C-y för att få tillbaka texten.
Om du gör flera C-k i rad så kommer all bortagen text att sparas
samlat så att ett C-y återhämtar alla raderna på en gång.
>> Prova detta. Tryck C-k ett par gånger.
Och hämta så tillbaka igen:
>> Tryck C-y. Flytta markören några rader ned och tryck C-y igen.
Så kopierar man text.
Men vad gör du om du har en text du önskar att hämta tillbaka men du
har redan tagit bort något nytt? C-y skulle hämta tillbaka den senaste
texten som blev borttagen men tidigare bortagen text är inte
förlorad. Du kan få tillbaka den med kommandot M-y. Efter att du har
använt C-y för att hämta tillbaka den sist borttagna texten kommer M-y
ersätta denna text med tidigare borttagen text. Genom att göra M-y om
och om igen hämtas allt tidigare borttagen text tillbaka. När du har
nått den önskade texten behöver du inte göra något ytterligare för att
behålla den. Fortsätt bara med din redigeringen och lämna den
återtagna texten där den är.
Om du gör M-y tillräckligt många gånger kommer du att komma tillbaka
till startpunkten (texten som sist blev borttagen).
>> Ta bort en rad, flytta markören till en ny rad och ta bort även
denna rad. Använd C-y för att hämta tillbaka den sista raden. Tryck
M-y för att byta den mot den tidigare borttagna raden. Tryck flera
M-y och se vad du får. Fortsätt med detta tills du får tillbaka den
första raden igen och sedan några gånger till. Om du vill kan du
prova med positiva och negativa argument till M-y.
* ÅNGRA
-------
Om du gör en förändring i texten och sedan ångrar dig, så kan du
upphäva ändringen med kommandot C-x u (undo).
Normalt kommer C-x u upphäva förändringen som gjordes av det sist
utförda kommandot. Om du repeterar C-x u flera gånger kommer varje
repetition upphäva ett kommando till.
Det finns två undantag. Kommandon som inte förändrar texten räknas
inte (detta inkluderar markörförflyttningar och bläddringskommandon),
och inskrivna enkelbokstäver blir vanligtvis grupperade i grupper om
upp till 20 tecken. Detta är för att reducera antalet C-x u som behövs
för att ångra inskriven text.
>> Ta bort den här raden med C-k. C-x u kommer att hämta tillbaka den
igen.
C-_ är ett alternativ till ångra-kommandot. Den fungerar på samma sätt
som C-x u men är enklare att trycka flera gånger i följd. Det
olämpliga med C-_ är att den är svår att hitta på en del tangentbord.
Det är därför vi också har C-x u. På en del terminaler kan du få fram
C-_ genom att trycka / samtidigt som Ctrl hålls nere.
Ett numeriskt argument till C-_ eller C-x u medför repetering.
Du kan ångra radering av text precis på samma sätt som du kan ångra
att du tagit bort text. Skillnaden mellan att ta bort och att radera
någonting påverkar endast om du kan hämta tillbaka det med C-y. För
ångerfunktionen spelar det ingen roll hur texten försvunnit.
* FILER
-------
För att texten du har förändrat skall sparas permanent måste du lägga
den i en fil. Om du inte gör det kommer texten att försvinna när du
avslutar Emacs. Du lägger texten i en fil genom att först finna (find)
denna fil. Detta kallas också för att besöka filen (visit).
Att finna en fil innebär att du ser filens innehåll i Emacs. På många
sätt är det som om du förändrar själva filen men förändringen du gör
kommer inte bli permanent förrän filen sparas (save). Detta är för att
undvika att halvförändrade filer sparas när du inte vill det. Till och
med när du sparar filen kommer Emacs att behålla originalet under ett
nytt namn, som backup, ifall du senare ångrar alltihop.
Om du tittar nästan längst ner på skärmbilden så kommer du se en rad
som börjar och slutar med minustecken, och som innehåller texten
"--:-- TUTORIAL.se". Denna del av skärmbilden visar alltid namnet på
filen du besöker. Just nu är du inne i en fil som heter "TUTORIAL.se"
och som är en personlig kopia av vägledningen till Emacs. Vilken fil
du än är inne i så kommer filnamnet stå där.
En annan sak med kommandot för att finna filer är att du måste ange
vilket filnamn du önskar. Vi säger att kommandot "läser ett argument
från terminalen". I detta fall är argumentet namnet på filen. Efter
att du gett kommandot
C-x C-f Finn en fil
kommer Emacs fråga efter ett filnamn. Filnamnet du skriver syns på den
nedersta raden i skärmbilden. Denna sista rad kallas minibuffert när
den används på det här sättet. Du kan använda vanliga Emacs-kommandon
för att förändra filnamnet.
När du skriver in filnamnet, eller något annat i minibufferten, kan du
avbryta med kommandot C-g.
>> Skriv C-x C-f och så C-g. Detta avbryter minibufferten och
avbryter också C-x C-f kommandot som använde minibufferten. Så att
du inte finner någon fil.
När du är färdig med att skriva filnamnet trycker du <Return> för att
utföra kommandot. Då kommer C-x C-f kommandot att börja leta fram
filen. Minibufferten försvinner när C-x C-f kommandot är färdigt.
Efter en liten stund kommer filen upp på skärmen och du kan börja
redigera innehållet. När du vill spara filen kan du använda detta
kommando
C-x C-s Spara fil
Detta sparar texten på skärmen till filen. Första gången detta görs
kommer Emacs att ge originalfilen ett nytt namn så att den inte går
förlorad. Det nya filnamnet bildas genom att lägga till ett "~" i
slutet av det ursprungliga filnamnet.
När lagringen är utförd kommer Emacs skriva ut namnet på filen som
blev sparad. Du bör spara ofta så att du inte förlorar så mycket om
systemet kraschar.
>> Skriv C-x C-s för att spara en kopia av denna vägledning.
Detta skall leda till att "Wrote ...TUTORIAL.se" skrivs ut nederst
på skärmbilden.
Observera: På vissa system leder C-x C-s till att skärmen låser
sig. Detta tyder på att systemet har "flödeskontroll" och att denna
har fångat C-s och inte skickat den vidare till Emacs. För att
fortsätta måste du trycka C-q. Se i så fall i avsnittet "Spontaneous
Entry to Incremental Search" i Emacs-manualen för att få tips på hur
detta kan undvikas.
Du kan finna en existerande fil, antingen för att förändra den eller
för att titta på den. Du kan också finna en fil som inte existerar.
Det är så man skapar nya filer med Emacs: finn filen, som är tom till
att börja med, och sätt igång med att skriva texten som skall in i
filen. Först när du sparar filen kommer Emacs att verkligen skapa
filen med den text du har skrivit. Från och med detta editerar du en
fil som existerar.
* BUFFERTAR
-----------
Om du finner en ny fil med C-x C-f kommer den första filen fortsätta
att vara öppen i Emacs. Du kan byta tillbaka till den genom att finna
den på nytt med C-x C-f. På så sätt kan du ha ett stort antal filer
öppna i Emacs.
>> Skapa en fil med namnet "foo" genom att trycka C-x C-f foo <Return>.
Skriv in lite text, redigera den och spara "foo" genom att använda
C-x C-s. Skriv till slut C-x C-f TUTORIAL.se<Return> för att komma
tillbaka till den här vägledningen.
Emacs sparar texten för varje fil i ett objekt kallat "buffert". När
du finner en ny fil skapas en ny buffert i Emacs. För att se en lista
över existerande buffertar i Emacs kan du skriva
C-x C-b Listning av buffertar.
>> Prova C-x C-b nu.
Se hur varje buffert har ett namn och att de också kan ha namnet på
den fil som innehållet kommer från. En del buffertar är inte knutna
till någon fil, till exempel bufferten "*Buffer List*". Det är den
buffert som innehåller buffertlistan som skapades med C-x C-b. Vilken
text du än ser i ett Emacs-fönster så tillhör den alltid en buffert.
>> Skriv C-x 1 för att bli kvitt buffertlistan.
Om du ändrar texten till en fil och sedan öppnar en ny fil, så kommer
inte den första filen sparas. Förändringen ligger kvar i
bufferten. Skapande och redigering av den nya filen påverkar inte den
första filens buffert. Detta kan vara bra men betyder också att du
behöver ett lämpligt sätt att spara den första filens buffert. Det är
omständligt att flytta tillbaka till den tidigare bufferten med C-x
C-f för att sedan spara filen med C-x C-s. Därför finns kommandot
C-x s Spara buffertar
C-x s frågar för varje buffert med ändringar, som inte sparats, om du
vill spara eller ej.
>> Sätt in en rad med text och spara med C-x s
Du skall nu få frågan om du önskar spara bufferten
TUTORIAL.se. Svara ja på frågan genom att trycka "y" (yes).
* UTVIDGNING AV KOMMANDOMÄNGDEN
-------------------------------
Det finns mycket fler Emacs-kommandon än antalet KONTROLL- eller
META-tangenter. För att komma förbi denna begränsning har Emacs ett
"X"- (eXtend) kommando. Detta finns i två varianter:
C-x Tecken-utvidgning. Följs av ett tecken.
M-x Namngiven kommandoutvidgning. Följs av ett
kommandonamn.
Detta är kommandon som är bra att ha men används mer sällan än de
kommandon du redan har lärt dig. Du har redan sett två av dem, C-x C-f
för finn, och C-x C-s för spara. Ett annat exempel är kommandot för
att avsluta Emacs som är C-x C-c. Var inte rädd för att förlora
förändringar du har gjort. C-x C-c erbjuder dig att spara förändringar
innan Emacs avslutas.
C-z är kommandot för att avsluta Emacs *tillfälligt* så att du kan
återvända till samma Emacs senare.
På system som tillåter det kommer C-z suspendera Emacs, dvs. returnera
till kommandoraden utan att avsluta Emacs. I de flesta system kan du få
tillbaka Emacs med kommandot 'fg' eller '%emacs'.
På system som saknar suspendering startar C-z ett skal som kör under
Emacs och som ger dig chansen till att köra andra program och sedan
återgå till Emacs efteråt. Den ger ingen riktig avslutning av Emacs. I
detta fall återvänder man vanligtvis till Emacs med kommandot 'exit'.
C-x C-c används när du skall avsluta Emacs. Det är klokt att avsluta
Emacs om den har startats av ett mail-program eller andra
applikationer eftersom det inte är säkert att de kan hantera
suspendering av Emacs. Under normala omständigheter, om du inte har
tänkt att logga ut, är det bättre att suspendera Emacs med C-z
istället för att avsluta.
Det finns många C-x kommandon. Här är en lista över de du har lärt dig
hittills:
C-x C-f Finn fil.
C-x C-s Spara fil.
C-x C-b Lista buffertar.
C-x C-c Avsluta Emacs.
C-x 1 Ta bort alla utom ett fönster.
C-x u Ångra.
Namngivna utvidgade kommandon är kommandon som används mycket sällan
eller bara i vissa lägen. Ett exempel på ett sådant kommando är
replace-string, som globalt ersätter en teckensträng med en annan. När
du skriver M-x kommer Emacs visa en prompt nederst i skärmbilden med
M-x där du skall skriva in kommandot du önskar att köra, i det här
fallet "replace-string". Det är bara att skriva "repl s<TAB>" och
Emacs kommer då att fylla i kommandonamnet. (<TAB> är
tabulatortangenten, som vanligtvis finns över CapsLock- eller
skifttangenten nära den vänstra kanten på tangentbordet.) Avsluta
kommandot med <Return>.
Kommandot replace-string kräver två argument, teckensträngen som skall
ersättas och teckensträngen som den skall ersättas med. Du måste
avsluta bägge argumenten med <Return>.
>> Flytta markören till den blanka raden två rader under denna rad.
Skriv M-x repl s<Return>förändrad<Return>ändrad<Return>.
Lägg märke till hur den här raden har blivit förändrad. Du har
ersatt ordet f-ö-r-ä-n-d-r-a-d med "ändrad" på alla platser där
ordet förekom, från markören och nedåt.
* SPARAUTOMATIK
---------------
När du har gjort förändringar i en fil men inte sparat den, så kommer
ändringarna att gå förlorade om maskinen kraschar. Som ett skydd mot
detta sparar Emacs periodiskt ändringarna i en autosparfil för varje
fil du redigerar. Denna fil har ett # i början och slutet av
filnamnet. Om du till exempel har en fil med namnet "hej.c" så kommer
namnet på autosparfilen bli "#hej.c#". När du sparar filen på vanlig
sätt kommer Emacs radera autosparfilen.
Om maskinen kraschar kan du återfå dina automatiskt sparade ändringar
genom att finna filen på vanlig sätt (filen du redigerade, inte
autosparfilen) och skriva M-x recover-file<Return>. När Emacs vill ha
bekräftelse svarar du yes<Return> för att återställa filen.
* EKOOMRÅDE
-----------
Om Emacs ser att du skriver kommandon långsamt så kommer de att visas
på den nedersta raden i skärmbilden i ett område som kallas
"ekoområde" (echo area). Detta område innehåller den nedersta raden på
skärmbilden.
* LÄGESRADEN
------------
Raden precis över ekoområdet kallas "lägesrad" (mode line). Den ser
ungefär ut så här:
--:** TUTORIAL (Fundamental)--L670--58%----------------
Raden innehåller information om Emacs och texten du redigerar.
Du vet redan vad filnamnet betyder, det är den fil du har funnit.
-NN%-- visar den aktuella positionen i texten, dvs. NN procent av
texten befinner sig över toppen av skärmbilden. Om toppen av filen är
i skärmbilden kommer det stå --Top-- istället för --00%-- och om
slutet av filen är i skärmbilden kommer det stå --Bot--. Om du ser på
en fil där hela texten passar in på en sida kommer det stå --All--.
Bokstaven L följd av siffror anger positionen på ett annat
sätt. Siffrorna visar vilken rad som markören befinner sig på.
Stjärnorna nära början av raden visar att det har skett förändringar i
filen sedan den sist blev sparad. När du precis har öppnat en fil
kommer det inte stå något här, bara minustecken.
Den del av lägesraden som står inom parentes visar vilket
redigeringsläge (mode) du använder. Standardläget är "Fundamental",
som du använder nu. Det är ett exempel på ett huvudläge (major mode).
Emacs har många olika huvudlägen. Några av dem är gjorda för
redigering av olika programmeringsspråk eller typer av text, till
exempel Lisp mode och Text mode. Det kan bara vara ett huvudläge åt
gången och lägesnamnet står alltid där det står Fundamental nu.
Varje huvudläge gör att en del kommandon uppför sig annorlunda. Det
finns till exempel kommandon för att sätta in kommentarer i programkod
och eftersom varje programmeringsspråk har sitt sätt att skriva
kommentarer på så måste de olika huvudlägena sätta in dessa
kommentarer på olika sätt. Varje huvudläge namnger ett utvidgat
kommando som används för att byte till det läget. Till exempel är M-x
fundamental-mode kommandot för att byta till huvudläget Fundamental.
Om du skall redigera text, såsom den här filen, bör du troligen
använda Text-läge.
>> Skriv M-x text mode<Return>.
Inget av kommandona du har lärt dig hittills förändrar Emacs i någon
högre grad. Men lägg märke till att M-f och M-b nu behandlar
apostrofer som en del av ord. Tidigare, i Fundamental mode, behandlade
M-f och M-b apostrofer som ordavskiljare.
Varje huvudläge gör vanligtvis små förändringar som denna och de flesta
kommandon gör samma sak i varje huvudläge, de fungerar bara lite
annorlunda.
För att få fram dokumentationen för det läge du är i nu kan du skriva
C-h m.
>> Använd C-u C-v så att denna rad kommer nära toppen av
skärmbilden.
>> Skriv C-h m och se hur Text-läget skiljer sig från
Fundamental-läget.
>> Tryck C-x 1 för att ta bort dokumentationen från skärmbilden.
Huvudläge kallas så för att det även finns sidolägen (minor mode).
Ett sidoläge ersätter inte ett huvudläge, utan modifierar det. Varje
sidoläge kan stängas av och på oberoende av andra sidolägen och
oberoende av huvudläget. Därför kan du använda ett sidoläge, en
kombination av flera sidolägen eller inget sidoläge alls.
Ett bra sidoläge, speciellt för redigering av text, är
radbrytningsläget (auto-fill-mode). När detta läge är på bryter Emacs
rader mellan ord automatisk när du skriver in text så att en rad blir
för lång.
Du kan slå på radbrytningsläget genom att skriva M-x auto fill
mode<Return>. När läget är påslaget kan du slå av det igen genom att
upprepa M-x auto fill mode<Return>. Om läget är avslaget slår
kommandot på det och vice versa. Vi säger att kommandot "växlar
läget".
>> Skriv M-x auto fill mode<Return> nu. Skriv så in en rad med
"asdf " tills raden delar sig. Du måste sätta in blanktecken, för
Auto Fill bryter bara raden mellan ord.
Marginalen är vanligtvis satt till 70 tecken men du kan ändra detta
genom att använda kommandot C-x f. Antalet tecken ges till kommandot
genom ett numeriskt argument.
>> Skriv C-x f med ett argument på 20. (C-u 2 0 C-x f). Skriv sedan in
någon text och lägg märke till att Emacs bryter rader som är längre
än 20 tecken. Sätt tillbaka marginalen till 70 tecken igen, genom
att använda C-x f en gång till.
Om du gör förändringar mitt i en rad så kommer inte sidoläget Auto
Fill att kunna omformattera raderna för dig.
För att göra detta kan du trycka M-q med markören inne i det avsnittet
du önskar att omformatera.
>> Flytta markören in i föregående stycke och tryck M-q.
* SÖKNING
---------
Emacs kan söka efter textsträngar (grupper med sammanhängande
bokstäver eller ord) antingen framåt eller bakåt i texten. När du
söker efter text kommer markören att flytta sig till nästa plats där
teckensträngen uppträder.
Sökmetoden i Emacs skiljer sig lite från sökmetoder i andra
redigeringsprogram genom att den är inkrementell. Detta betyder att
sökandet fortgår medan du skriver in teckensträngen du skall söka
efter.
Kommandot för att inleda en sökning är C-s för att söka framåt och C-r
för att söka bakåt. MEN VÄNTA! Prova dem inte än.
När du skriver C-s kommer du lägga märke till att texten "I-search"
dyker upp i eko-området. Detta säger dig att Emacs är inne i sidoläget
inkrementell sökning och väntar på att du skall skriva in det du letar
efter. <Return> avslutar sökandet.
>> Skriv nu C-s för att starta en sökning. Skriv nu långsamt, en
bokstav i taget, ordet 'markör', och gör en paus efter varje gång
du skriver en bokstav så att du ser vad som sker med markören. Nu
har du sökt efter ordet "markör" en gång.
>> Skriv C-s en gång till för att söka efter nästa förekomst av ordet
"markör".
>> Tryck nu på <Delete> fyra gånger och se hur markören flyttar sig
>> Tryck <Return> för att avsluta sökandet.
Såg du vad som hände? Under inkrementell sökning försöker Emacs att gå
till den första förekomsten av texten som du har skrivit så långt, och
markerar träffen så att du ser var den är. För att gå till nästa
förekomst av ordet 'markör' är det bara att trycka C-s en gång till.
Om det inte finns flera förekomster kommer Emacs att pipa och meddela
att sökandet har misslyckats. C-g avbryter också sökandet.
Observera: På vissa system gör C-s att skärmen låser sig. Detta tyder
på att systemets flödeskontroll har fångat upp C-s och inte skickat
den vidare till Emacs. För att fortsätta måste du trycka C-q. Se i så
fall avsnittet "Spontaneous Entry to Incremental Search" i
Emacs-manualen för råd om hur detta kan undvikas.
Om du är inne i en inkrementell sökning och trycker <Delete> kommer du
lägga märke till att den sista bokstaven i söksträngen blir raderad
och sökandet hoppar tillbaka till en tidigare förekomst. Om du till
exempel skriver "m" för att söka efter den första förekomsten av "m",
och sedan trycker "a" så kommer markören flytta sig till första
förekomsten av "ma". Tryck nu <Delete>. Detta avlägsnar "a" från
söksträngen, och markören flyttar sig tillbaka till den första
förekomsten av "m".
Om du är mitt i en sökning och trycker ett KONTROLL- eller META-tecken
så avbryts sökandet. Undantag är tecken som används under sökningen,
så som C-s och C-r.
C-s startar en sökning som letar efter varje förekomst av söksträngen
EFTER markörspositionen. Om du skall söka efter en sträng tidigare i
texten måste du använda C-r. Allt vi har sagt om C-s gäller också för
C-r, bortsett från att riktningen på sökningen är den omvända.
* FLERA FÖNSTER
---------------
En av egenskaperna hos Emacs är att den kan visa mera än en buffert på
skärmen samtidig.
>> Flytta markören till den här raden och tryck C-u 0 C-l (alltså
KONTROLL-L, inte KONTROLL-1).
>> Skriv nu C-x 2, som leder till att skärmen delas i två
fönster. Bägge fönstren visar den här vägledningen. Markören står i
det övre fönstret.
>> Skriv C-M-v för att rulla det nedre fönstret.
(Om du inte har META-tangenten trycker du ESC C-v.)
>> Skriv C-x o (o för other) för att flytta markören till det
nedre fönstret.
>> Använd C-v och M-v i det nedre fönstret för att flytta upp
och ned i texten. Fortsätt att läsa den här texten i det övre
fönstret.
>> Skriv C-x o igen för att flytta markören tillbaka till det övre
fönstret. Markören i det övre fönstret står på samma plats som det
gjorde när du lämnade det.
Du kan fortsätta att använda C-x o för att byta mellan de två
fönstren. Vart och ett av fönstren har sin egen markörposition men det
är bara ett av fönstren som visar den. Alla redigeringskommandon
fungerar i det fönster där markören är synlig. Vi kallar detta fönster
för det valda fönstret (selected window).
Kommandot C-M-v är bra när du redigerar text i ett fönster och
använder det andra fönstret för referenser. Då kan du kan ha markören
i samma fönster hela tiden och du kan använda C-M-v för att flytta dig
i det andra fönstret.
C-M-v är ett exempel på en KONTROLL-META-kombination. Om du har
META-tangenten håller du både KONTROLL och META nedtryckt samtidigt
som du trycker v. Det har ingen betydelse vilken av tangenterna
KONTROLL och META som trycks först, för bägge fungerar så att de
"modifierar" de andra tangenterna du trycker.
Om du inte har META-tangenten och använder ESC istället är
ordningsföljden viktig. Du måste trycka ESC följt av KONTROLL-v,
KONTROLL-ESC v fungerar inte. Det är för att ESC är ett tecken i sig
och inte en äkta "modifierare".
>> Skriv C-x 1 i det övre fönstret för att bli kvitt det nedre
fönstret.
Om du hade skrivit C-x 1 i det nedre fönstret skulle det övre ha
försvunnit. Tänk på detta kommando som "Behåll bara ett fönster, det
som markören står i."
Du måste inte ha samma buffert i bägge fönstren. Du kan använda C-x
C-f för att finna en ny fil i ett av fönstren samtidigt som det andra
fönstret förblir oförändrat. Du kommer att märka att fönstren är helt
oberoende.
Här är ett annat sätt att använda två fönster till att visa två olika
filer:
>> Skriv C-x 4 C-f följt av ett filnamn. Avsluta med <Return>.
Den nya filen kommer då att dyka upp i det nedre fönstret.
Markören flyttats också dit.
>> Skriv C-x o för att gå tillbaka till det övre fönstret och C-x
1 för att bli kvitt det nedre igen.
* REKURSIVA REDIGERINGSNIVÅER
-----------------------------
Ibland kan du hamna i något som kallas "rekursiv redigering"
(recursive editing level). Detta indikeras med hakparenteser runt
huvudläget i lägesraden. Till exempel kan det stå [(Fundamental)]
istället för (Fundamental).
För att komma ur rekursiv redigering trycker du ESC ESC ESC. Detta är
ett generellt brytkommando. Du kan också använda det för att bli kvitt
extra fönster och för att komma ut ur minibufferten.
>> Skriv M-x för att komma in i minibufferten. Skriv så ESC ESC ESC
för att komma ut.
Du kan inte använda C-g för att komma ut ur rekursiv redigering.
Detta är för att C-g används för att avbryta kommandon och argument
under rekursiv redigering.
* MER HJÄLP
-----------
I denna vägledning har vi försökt inkludera precis så mycket
information att du kan börja använda Emacs. Det finns så många
möjligheter i Emacs att det skulle vara omöjligt att förklara alla
här. Men du VILL säkert lära dig mer om Emacs eftersom den har många
goda egenskaper. Emacs tillhandahåller kommandon för att läsa all
dokumentation. Dessa hjälpkommandon startas med teckenkombinationen
C-h.
För att använda hjälpen skriver du C-h följt av ett tecken för den
hjälp du behöver. Om du verkligen är helt villrådig kan du trycka C-h
? för att Emacs skall visa vilken hjälp som finns tillgänglig. Om du
har skrivit C-h och bestämmer dig för att du inte behöver ha någon
hjälp kan du trycka C-g för att avbryta.
(På vissa platser är C-h omkonfigurerad. Det är normalt ingen bra ide´,
så du kan på goda grunder klaga hos systemadministratören. Under
tiden, om C-h inte visar ett hjälpmeddelande längst ner på skärmen,
kan du i stället försöka med funktionstangenten F1 eller M-x
help<Return>.)
Den mest grundläggande hjälp-funktionen är C-h c. Skriv C-h, ett "c"
och en knappsekvens. Emacs ger då en beskrivning av kommandot.
>> Skriv C-h c C-p.
Meddelandet skall då bli något i stil med
C-p runs the command previous-line
Detta ger ett funktionsnamn. Funktionsnamnen används huvudsakligen för
att specialanpassa och utvidga Emacs. Men eftersom funktionerna har
beskrivande namn kan de också fungera som en enkel dokumentation,
tillräckligt för att påminna dig om kommandon du redan lärt dig.
Flerteckenskommandon, så som C-x C-s och (om du inte har META, EDIT
eller ALT tangenten) <ESC> v, är också tillåtna efter C-h c.
För att få mer information om ett kommando kan du använda C-h k
istället för C-h c.
>> Skriv C-h k C-p.
Detta kommer visa funktionens dokumentation och namn i ett eget
fönster. För att avsluta hjälpfönstret kan du trycka C-x 1. Du behöver
inte göra det omedelbart. Du kan editera med hjälptexten som stöd för
att först senare ta bort fönstret med C-x 1.
Här är fler varianter på C-h:
C-h f Beskriv en funktion. Du skriver in funktionsnamnet.
>> Prova att skriva C-h f previous-line<Return>.
Detta ger den information Emacs har om funktionen
som implementerar kommandot C-p.
Ett liknande kommando, C-h v, visar dokumentationen för de variabler
som du kan ändra värde på för att anpassa Emacs beteende. Du måste
ange namnet på variabeln när Emacs frågar efter den.
C-h a Kommando-apropå (Command Apropos). Skriv in ett
nyckelord och Emacs listar all kommandon vars namn
innehåller det nyckelordet. Alla dessa
kommandon kan aktiveras med META-x. För några
kommandon listas också de kombinationer bestående av
en eller två tecken som kör det kommandot.
>> Skriv C-h a file<Return>.
Detta visar i ett annat fönster en lista över alla M-x kommandon där
"file" förekommer i kommandonamnet. Du kommer se teckenkommandon som
C-x C-f listade bredvid motsvarande kommandonamn, t.ex. find-file.
>> Tryck C-M-v för att rulla texten i hjälpfönstret. Gör det några
gånger.
>> Type C-x 1 för att ta bort hjälpfönstret.
C-h i Läs direktmanualen (alias Info). Detta kommando
placerar dig i en speciell buffer vid namn "*info*"
där du kan läsa direkthjälpen för de paket som är
installerade i ditt system. Slå m emacs <Return> för
att läsa Emacs-manualen. Om du aldrig tidigare har
använt dig av Info, skriv ? och Emacs tar dig på en
guidad tur över Infolägets (Info-mode) möjligheter.
När du väl har tagit dig igenom den här
användarhandledningen så är det direktmanualen som är
din huvudsakliga källa till dokumentation.
* TILL SIST
-----------
Tänk på att använda C-x C-c för att avsluta Emacs permanent. För att
tillfälligt gå till ett skal, så att du senare kan komma tillbaka
igen, använd C-z. (Under X kommer detta att minimera Emacs.)
Denna vägledningen är avsedd för nya användare, om det är något som är
oklart duger det inte att sitta och tycka synd om sig själv -- Skicka
ett mail och klaga!
* KOPIERING
-----------
Denna vägledning härstammar från en hel rad Emacs-vägledningar och den
första skrevs av Stuart Cracraft för den ursprungliga Emacs. Mats
Lidell översatte den till Svenska.
This version of the tutorial, like GNU Emacs, is copyrighted, and
comes with permission to distribute copies on certain conditions:
Copyright (c) 1985, 1996 Free Software Foundation
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
copyright notice and permission notice are preserved,
and that the distributor grants the recipient permission
for further redistribution as permitted by this notice.
Permission is granted to distribute modified versions
of this document, or of portions of it,
under the above conditions, provided also that they
carry prominent notices stating who last altered them.
The conditions for copying Emacs itself are more complex, but in the
same spirit. Please read the file COPYING and then do give copies of
GNU Emacs to your friends. Help stamp out software obstructionism
("ownership") by using, writing, and sharing free software!