Mercurial > emacs
view etc/tutorials/TUTORIAL.sv @ 99227:d0781e01ee9c
* bookmark.el (bookmark-get-bookmark-record): Signal error for invalid
bookmark.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Wed, 29 Oct 2008 18:21:50 +0000 |
parents | 684d62ac9413 |
children | c90853557b90 |
line wrap: on
line source
Emacs användarhandledning. I slutet finns kopieringsvillkoren. 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. Du kan också använda PageUp och PageDn tangenterna, om din terminal har dem, för att flytta en hel skärmbild åt gången, men du redigerar effektivare om du använder C-v och M-v. * 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. Du kan använda piltangenterna, men det är mer effektivt att ha händerna i standardläget och använda kommandona C-p, C-b, C-f och C-n. Dessa tecken är likvärdiga med de fyra piltangenterna. Så här: 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 enklare att komma ihåg 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). Dessa är de grundläggande kommandona för att flytta markören och du kommer att använda dem hela tiden. >> 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å sidan 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 <Delback>. <Delback> är en tangent på tangentbordet -- samma som du normalt använder utanför Emacs för att ta bort det senaste tecknet du skrivit. Det är vanligen en stor tangent några rader ovanför retur-tangenten, och den är vanligtvis märkt "Delete, "Del" eller "Backspace". Om den stora tangenten är märkt med "Backspace" så är det den du använder för <Delback>. Det kan finnas en annan tangent som är märkt med "Delete" men det är inte <Delback>. Generellt raderar <Delback> 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 <Delback>. 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 <Delback> 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 <Delback>. 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: <Delback> Raderar tecknet som står precis före markören C-d Raderar tecknet som står precis under markören M-<Delback> 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 <Delback> och C-d kontra M-<Delback> och M-d följer mönstret som började med C-f och M-f. (<Delback> ä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 texten 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 texten du redigerar eller till och med i en helt annan fil. Du kan också hämta tillbaka samma text 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.sv". Denna del av skärmbilden visar alltid namnet på filen du besöker. Just nu är du inne i en fil som heter "TUTORIAL.sv" 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.sv" skrivs ut nederst på skärmbilden. 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.sv <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. 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. När du har flera buffertar så är bara en av dem "gällande" åt gången. Det är den buffert du redigerar. Om du vill redigera en annan buffert så måste du byta till den. Om du vill byta till en buffert som motsvarar en fil kan du göra det genom att besöka den igen med C-x C-f. Det finns dock ett enklare sätt: använd C-x b kommandot. I det kommandot anger du buffertens namn. >> Skriv C-x b foo <Return> för att gå tillbaka till bufferten "foo" som innehåller texten i filen "foo". Skriv sedan C-x b TUTORIAL.sv <Return> för att komma tillbaka till den här handledningen. Mestadels är buffertens namn densamma som filens namn (utan katalogdel.) Det är dock inte alltid så. Bufferlistan du skapar med C-x C-b visar alltid namnen på varje buffert. All text du ser i ett Emacsfönster är alltid del av någon buffert. 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. Bufferten "*Messages*" motsvarar inte heller någon fil. Den innehåller de meddelanden som visas på den nedersta raden i Emacs sessionen. >> Skriv C-x b *Messages* <Return> för att se meddelandebufferten. Skriv sedan C-x b TUTORIAL.sv <Return> för att återgå till den här handledningen. 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.sv. 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 några 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 s Spara några buffertar C-x C-b Lista buffertar C-x b Byt buffert 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 63% L749 (Fundamental)----------------------- 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 " 0%" 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å <Delback> 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 <Delback> 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 <Delback>. 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! * MER FUNKTIONER ---------------- Du kan lära dig mer om Emacs genom att läsa dess manual, antingen i bokform eller on-line i Info (använd Hjälp-menyn eller skriv F10 h r). Två finesser som du kan komma att gilla speciellt är komplettering (completion), som spar tangenttryckningar, och dired, som förenklar filhantering. Komplettering är ett sätt att undvika onödiga tangenttryckningar. Till exempel, om du vill byta till *Messages* bufferten, kan du du skriva C-x b *M<Tab> och Emacs kommer fylla i resten av buffertnamnet så långt den kan räkna ut det från det du redan skrivit. Komplettering finns beskrivet i Emacs-manualen i noden "Completion". Dired gör det möjligt att lista filer i en katalog (och även dess subkataloger), flytta runt i listan, besöka, byta namn, ta bort och operera på olika sätt på filerna. Dired finns beskrivet i Info i Emacs-manualen i noden "Dired". Manualen beskriver även många andra Emacs funktioner. * 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, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. 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! ;;; Local Variables: ;;; coding: latin-1 ;;; sentence-end-double-space: nil ;;; End: ;;; arch-tag: b352f774-622b-4cc6-85ce-43e3baf4fc1b