next up previous contents
Nästa: 2.2 Textredigering Upp: 2. GNU Emacs Förra: 2. GNU Emacs

2.1 Universalprogrammet Emacs

Ett av de främsta och viktigaste programmen i UNIX-miljön är Emacs. Ytligt sett är Emacs en textredigerare, men tack vare dess närmast ändlösa flexibilitet kan Emacs tjäna som ett universalprogram - via Emacs kan man typsätta sina dokument, programmera, hantera sina filer, skicka datorpost och läsa webbsidor, bland mycket annat. Emacs har ett skräddarsytt läge för varje tillämpning. När man skriver ett C-program ställer Emacs in sig i C-läget; när man arbetar med typsättningsprogrammet LATEX inifrån Emacs befinner sig Emacs i sitt LATEX-läge osv.

Emacs är uppbyggt kring en kärna som ger den grundläggande funktionaliteten och som dessutom implementerar ett helt programmeringsspråk, Emacs lisp. Till denna kärna kommer ett stort antal moduler, skrivna i Emacs lisp, som utökar funktionaliteten och definierar olika lägen. Till exempel finns en modul som möjliggör stavningskontroll av texter och en grupp av moduler som tillsammans definierar LATEX-läget.

Om man inte är nöjd med hur Emacs fungerar, så kan man ofta anpassa det efter sin egen smak genom att ändra på vissa inställningar, antingen inifrån Emacs eller genom att lägga in kommandon i en fil med namnet .emacs i sin hemkatalog. För att tecknen åäö ska behandlas korrekt kan det vara nödvändigt att lägga följande kommandon i filen .emacs:

(standard-display-european t)
(set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)

Emacs startas med kommandot emacs, eventuellt tillsammans med namnet på en eller flera filer som man vill arbeta med. Exempelvis kan man för att redigera filen bellman ge kommandot$ emacs bellmanProgrammet avslutas med C-x C-c, dvs först kommandot C-x och därefter C-c. Det snabbaste sättet att ge detta kommando är att hålla kontrolltangenten nedtryckt med lillfingret och samtidigt trycka först x med långfingret och sedan c med pekfingret på vänster hand. (Emacs är, liksom UNIX i övrigt, kärvt för nybörjare, med många kryptiska kommandon som kan tyckas omöjliga att memorera. Men när man vant sig vid programmet upptäcker man att tangenterna tycks ''sitta rätt'', så att man kan arbeta snabbt och effektivt.)

För den som inte tidigare använt Emacs rekommenderar jag varmt den inbyggda introduktionen, som startas med kommandot C-h t. Genom den får man lära sig hantera de grundläggande funktionerna för textredigering.

Ett annat kommando som är bra att känna till är C-g. Det avbryter ett eventuellt påbörjat kommando. Om man av misstag råkar ge ett kommando och det börjar hända märkliga saker, så kan ordningen alltså ofta återställas med C-g. Om däremot ett kommando redan har utförts och förändrat den text man arbetar med, så ska man använda ångerkommandot C-_ för att återställa bufferten till det skick den var i före kommandot. Genom att upprepade gånger ge kommandot C-_ kan man omintetgöra förändringar som gjorts långt tidigare. En synonym för C-_ är C-x u.

Tabell 2.1 ger en förteckning av de kommandon som beskrivs i detta avsnitt.


 
Tabell: Grundläggande Emacs-kommandon
 
Kommando Funktion Kommando Funktion
C-x C-c Avsluta Emacs C-h t Introduktion till Emacs
C-x C-s Spara bufferten C-_ Ångra föregående kommando
C-x C-f Öppna fil C-g Avbryt kommando
C-x s Spara flera buffertar M-x Ge namngivet kommando
C-x C-w Spara under nytt namn F10 Aktivera menyn
C-x k Stäng buffert C-x i Läs in en fils innehåll

När man öppnar en fil i Emacs, vare sig genom att ange dess namn i kommandot som startar Emacs eller med kommandot C-x C-f, skapas en buffert i emacs. Bufferten innehåller en kopia av filens innehåll. Man arbetar alltså inte direkt mot filen så som den är sparad på tex hårddisken, utan endast med en kopia. För att de ändringar man gjort i en buffert ska bli beständiga måste man spara bufferten. Kommandot för att spara en buffert, och skriva över den motsvarande filen, är C-x C-s. Emacs kan hantera ett stort antal buffertar åt gången. Man kan alltså arbeta med flera olika filer samtidigt.

När Emacs startats ser man menyraden överst i Emacs-skärmen. Med hjälp av menyraden kan man välja vissa kommandon i stället för att skriva in dem via tangenterna. Under menyn finns en stor yta, ett fönster,2.1där man arbetar med sina texter. Långt ned på Emacs-skärmen finns en markerad rad, lägesraden.

Den kan se ut ungefär så här:

--**-Emacs: epistlar.tex      (LaTeX)--L110--34%-------
Låt oss säga något om vilken information man kan utläsa ur lägesraden: Emacs identifierar sig med texten Emacs:, och anger att man arbetar med filen epistlar.tex. De båda asteriskerna till vänster betyder att man inte sparat de senaste ändringarna av sin fil. När bufferten är sparad står det -- i stället för **. (Och om den fil man har framme skulle vara skrivskyddad, så står det %%.) Naturligtvis kan man också se vilket läge Emacs befinner sig i - LATEX-läget. Dessutom ser vi att vi befinner oss vid rad 110 och att 34% av bufferten epistlar.tex ligger före texten som för tillfället visas i fönstret. Om man kan se början av bufferten, så står det Top snarare än 0%; om man kan se slutet av bufferten, så står det Bot - men om bufferten är så kort att man kan se den i sin helhet, så står det i stället All.

Det lilla område som finns under lägesraden kallas för minibufferten. Den används då man i samband med något kommando behöver mata in text som inte hör till det dokument man arbetar med. Till exempel betyder kommandot C-x C-f att man vill öppna en fil för redigering. När man gett detta kommando flyttas markören ned till minibufferten, och Emacs frågar efter namnet på den fil man vill öppna. Ett annat exempel är namngivna kommandon som goto-line, eller M-x goto-line som vi ofta kommer att skriva. För att kunna ge sådana kommandon trycker man först M-x, varefter markören flyttas till minibufferten, så att man där kan skriva kommandot. (Efter att man gett kommandot goto-line får man en följdfråga i minibufferten, nämligen om vilken rad man vill gå till.)

Ett koncept som genomsyrar all användning av Emacs är punkten.2.2Med ''punkten'' menas den position i bufferten där man för tillfället befinner sig. Den text man skriver in hamnar vid punkten. Emacs använder markören för att visa var punkten finns. Närmare bestämt: Punkten befinner sig alltid mellan två tecken i bufferten. Markören placeras över det tecken i bufferten som kommer direkt efter punkten, dvs till höger om den. Till exempel, om punkten befinner sig mellan bokstäverna x och m i ''exmpel'', så placerar Emacs ut markören över bokstaven m. Om man då trycker på e så läggs ett e in mellan x och m, vilket ger ''exempel''. Därefter befinner sig punkten mellan e och m, och markören står fortfarande över m.

Som komplement finns också begreppet märket, en position i texten som man markerat med C-mellanslag för att tex senare kunna återvända dit snabbt eller för att kunna klippa ut texten mellan märket och punkten. Texten mellan märket och punkten kallas för regionen. När märket är satt lyser Emacs upp regionen. Om detta är tröttsamt eller störande, så kan man slippa det genom att trycka C-g.

Det lättaste sättet att vandra omkring i sin fil, dvs att flytta punkten, är att använda piltangenterna samt Page Up och Page Down. Ofta vill man också flytta sig till början av en rad med kommandot C-a, eller till slutet av den med C-e. Men det finns naturligtvis åtskilliga andra kommandon som påverkar punkten och märket - se tabell [*].


 
Tabell 2.2: Kommandon som flyttar punkten
 
Förflyttning Bakåt (uppåt) Framåt (nedåt)
Tecken C-b eller vänsterpil C-f eller högerpil
Rad C-p eller pil uppåt C-n eller pil nedåt
Ord M-b M-f
Till radens början/slut C-a C-e
Till filens början/slut M-< M->
En skärmfull rader M-v eller Page Up C-v eller Page Down
Mening M-a M-e
Stycke M-{ M-}
Gå till rad nummer n M-x goto-line n
Centrering av punkten C-l
Sätt märke C-@ eller C-mellanslag
Byt punkten mot märket C-x C-x


next up previous contents
Nästa: 2.2 Textredigering Upp: 2. GNU Emacs Förra: 2. GNU Emacs
Goran Andersson
1999-03-08