Emacs-lathund
C-x nedan betyder att man ska hålla ned Ctrl-tangenten och sedan trycka på tangenten "x". M- nedan betyder att man ska hålla ned den s.k. "meta"-tangenten som på ett pc-tangentbord är märkt "Alt".Starta och lämna Emacs
I Unix/Linux
- emacs& (i terminalfönstret) starta Emacs
- C-z stoppa Emacs temporärt
- fg (i terminalfönstret) starta Emacs igen
- C-x C-c avsluta Emacs permanent
I Windows
- Välj "Emacs" under Programs/Editors/Gnu Emacs på Startmenyn starta Emacs
- C-x C-c avsluta Emacs permanent
Filer
- C-x C-f läsa in en fil i Emacs
- C-x C-s spara en fil på skivminne
- C-x s spara en fil på skivminne med fråga
- C-x i sätt in innehållet i en annan fil i bufferten
- C-x C-v läs in en ny fil i bufferten
- C-x C-w skriv buffertens innehåll på en namngiven fil
- C-x d starta Dired, katalogeditorn
Att få hjälp
Hälpsystemet är mycket enkelt. Tryck på C-h och följ instruktionerna. Om du är nybörjare, tryck C-h t för att få en demonstration. Alla hjälptexter är på engelska.- C-x 1 ta bort hjälpfönstret
- ESC C-v bläddra i hjälpfönstret
- C-h a apropos: sök med hjälp av text
- C-h c visa en tangents funktion
- C-h f beskriv en funktion
- C-h m få information om den aktuella moden
Om något går fel
- C-g avbryt delvis angivet kommando
- M-x recover-file rädda en fil efter en krasch
- C-x u eller C-_ ångra en oönskad ändring
- M-x revert-buffer återgå till senaste sparade versionen
- C-l rita om skärmen
Sökning
- C-s sökning framåt
- C-r sökning bakåt
- C-M-s sökning med hjälp av reguljära uttryck
Använd C-s eller C-r upprepade gånger för att upprepa sökningen eller upprepa den i någon riktning.
- ESC avsluta sökningen
- DEL ångra senaste tangenttryckningen
- C-g avbryt sökningen
Om Emacs fortfarande söker så avslutar C-g den sökning Emacs just då håller på med, i annat fall avbryts hela sökningen.
Förflyttning
Förflyttning av markören:- C-f tecken framåt
- C-b tecken bakåt
- M-f ord framåt
- M-b ord bakåt
- C-n rad framåt
- C-p rad bakåt
- C-a gå till radens början
- C-e gå till radens slut
- M-e mening framåt
- M-a mening bakåt
- M-] stycke framåt
- M-[ stycke bakåt
- C-x ] sida framåt
- C-x [ sida bakåt
- C-M-f syntaktisk enhet framåt
- C-M-b syntaktisk enhet bakåt
- C-M-e funktion framåt
- C-M-a funktion bakåt
- M-< gå till början av bufferten
- M-> gå till slutet av bufferten
Skärmberoende förflyttningar
- C-v bläddra en skärmbild framåt
- M-v bläddra en skärmbild bakåt
- C-x < bläddra åt vänster
- C-X > bläddra åt höger
Radering
- C-d tecken framåt
- DEL tecken bakåt
- M-d ord framåt
- M-DEL ord bakåt
- C-k raden till slutet
- M-0 C-k raden till början
- M-k meningen till slutet
- C-x DEL meningen till början
- C-M-k syntaktisk enhet framåt
- M-- C-M-k syntaktisk enhet bakåt
- C-w radera området och placera i killring
- M-z tkn radera till nästa tecken tkn
- C-y lägg tillbaka senast raderade text
- M-y ersätt senast raderade text med ännu äldre
Märkning
- C-@ eller C-SPACE sätt märket här
- C-x C-x byt arbetspunkt och märke
- M-@ sätt märket arg orde bort
- M-h markera stycket
- C-x C-p markera sidan
- C-M-@ markera syntaktisk enhet
- C-M-h markera funktionen
- C-x h markera hela bufferten
Utbyte av text
- M-% interaktivt utbyte av text
- M-x query-replace-regexp med hjälp av reguljära uttryck
- SPACE byt den här, sök efter nästa
- , byt denna, stå kvar
- DEL hoppa vidare till nästa utan att byta
- ! byt ut på alla ställen som återstår
- ^ gå tillbaka till föregående ställe
- ESC avsluta interaktivt utbyte
- C-r starta rekursivt utbyte (C-M-c för att avsluta)
Flera fönster
- C-x 1 göm alla fönster
- C-x 0 göm detta fönstret
- C-x 2 dela fönstret i två delar, horisontellt
- C-x 3 dela fönstret i två delar, vertikalt
- C-M-v bläddra i annat fönster
- C-x o flytta markören till ett annat fönster
- M-x shrink-window gör fönstret kortare
- C-x ^ gör fönstret längre
- C-x { gör fönstret smalare
- C-x } gör fönstret bredare
- C-x 4 b byt buffert i ett annat fönster
- C-x 4 f läs in en fil i ett annat fönster
- C-x 4 m skicka brev i ett annat fönster
- C-x 4 d starta katalogeditorn i ett annat fönster
- C-x 4 . sök efter etikett i ett annat fönster
Formatering
- TAB indentera aktuell rad (beroende på mod)
- C-M-\ indentera aktuellt område (beroende på mod)
- C-M-q indentera aktuell syntaktisk enhet (beroende på mod)
- C-x TAB indentera aktuellt område till kolumn arg
- C-o sätt in radbrytning efter arbetspunkten
- C-M-o flytta resten av raden vertikalt nedåt
- C-x C-o radera blanka rader kring arbetspunkten
- M-\ radera alla blanka runt arbetspunkten
- M-SPACE sätt in exakt ett blanktecken vid arbetspunkten
- M-q jämna till stycket
- M-g jämna till området
- C-x f sätt högermarginal
- C-x . sätt det prefix som varje rad början med
Ändra
- M-u ändra ordet till versaler
- M-l ändra ordet till gemena
- M-c endast första bokstaven ska vara versal
- C-x C-u ändra området till versaler
- C-x C-l ändra området till gemena
- M-x capitalize-region som M-c men för ett helt område
Minibufferten
Följande tangenter är definierade i minibufferten.- TAB fyll i så mycket som möjligt
- SPACE fyll i maximalt ett ord
- RET fyll i och utför
- ? visa möjliga alternativ
- C-g avbryt
- M-p Föregående kommando i minibufferten
- M-n Nästa kommando i minibufferten
Buffertar
- C-x b gå till en annan buffert
- C-x C-b lista alla buffertar
- C-x k ta bort en buffert
Byt plats
- C-t byt plats med föregående tecken
- M-t byt plats med föregående ord
- C-x C-t byt plats med föregående rad
- C-M-t byt plats med föregående syntaktiska enhet
Stavningskontroll
- M-$ kontrollera stavningen av ett ord
- M-x spell-region kontrollera stavningen av området
- M-x spell-buffer kontrollera stavningen i bufferten
Etiketter (Tags)
- M-. sök efter en etikett
- C-u M-. sök efter nästa etikett
- M-x visit-tags-table ange ny etikettfil
- M-x tags-search leta i alla filer med reguljärt uttryck
- M-x tags-query-replace interaktivt utbyte i alla filer
- M-, upprepa sökningen eller utbyte
Kommandotolk (skal, shell)
- M-! utför ett skalkommando
- M-| utför ett skalkommando på området
- C-u M-| filtrera området genom ett skalkommando
- M-x shell starta en kommandotolk i bufferten *shell*
Rmail
- M-x rmail starta Rmail
- SPC bläddra framåt
- DEL bläddra bakåt
- . (dot) gå till början av nästa brev
- n nästa ej borttagningsmarkerade brev
- p föregående ej borttagningsmarkerade brev
- M-n nästa brev
- M-p föregående brev
- d markera brevet som borttaget
- C-d radera brev och gå till föregående brev
- u markera brevet som ej borttaget
- r svara på brev
- f skicka brevet vidare till någon
- m skicka brev
- g hämta nyinkommen post
- q avsluta Rmail
- o kopiera brevet till en annan RMAIL-fil
- C-o kopiera brevet enligt UNIX-standard
- h visa kortfattade brevhuvuden
Reguljära uttryck
Följande tecken är speciella inuti ett reguljärt uttryck.- . (punkt) något enstaka tecken
- * noll eller flera upprepningar
- + en eller flera upprepningar
- ? noll eller en upprepning
- [...] något tecken i mängden
- [^...] något tecken utanför mängden
- ^ början på rad
- $ slut på rad
- \c tolka ett tecken literalt
- \| alternativ (Något av)
- \(....\) gruppering
- \n n:te gruppen
- \` början på bufferten
- \' slut på bufferten
- \b ordbrytning
- \B inte början eller slut på ord
- \< början av ord
- \> slut på ord
- \w något tecken som kan ingå i ett ord
- \W något tecken som inte kan ingå i ett ord
- \sc ett tecken med syntax c
- \Sc ett tecken som inte har syntax c
Register
- C-x x kopiera området till ett register
- C-x g stoppa in innehållet i ett register
- C-x / spara undan arbetspunktens position i ett register
- C-x j gå till en undanstoppad position
Info
- C-h i starta Info
- SPC bläddra framåt inom nod
- DEL bläddra bakåt inom nod
- . (punkt) gå till början av noden
- n gå till nästa nod
- p gå till föregående nod
- u gå upp en ivå
- m välj menyalternativ med hjälp av namn
- n välj n:te menyalternativet (1-5)
- f följ korsreferens (gå tillbaka med 'l')
- l återgå till den nod du senast såg
- d gå tillbaka till huvudnoden
- g gå till någon nod
- h starta övningsversion av Info
- ? visa kommandon i Info
- q avsluta Info
- s sök i noderna efter reguljärt uttryck
Tangentbordsmakron
- C-x ( starta inspelning
- C-x ) avsluta inspelning
- C-x e utför senaste sparade makro
- C-u C-x ( utöka senaste makro
- M-x name-last-kbd-macro döp senaste makro
- M-x insert-kbd-macro visa lispkod för makro i aktuell buffer
Speciella funktioner för Emacs Lisp
- C-x C-e evaluera syntaktisk enhet innan arbetspunkten
- C-M-x evaluera aktuell defun
- M-x eval-region evaulera området
- M-x eval-current-buffer evaluera hela bufferten
- M-ESC läs och evaulera minibufferten
- C-x ESC evaluera senaste kommando i minibufferten
- M-x load-file läs och evaluera en fil i E-Lisp
- M-x load-library läs in från global systemkatalog
Enkel konfigurering
Här kommer några exempel på hur man kan binda tangenter till funktioner globalt i ELisp. Märk att du inte kan skriva '\M-#', utan måste skriva '\e#'.(global-set-key "\C-cg" 'goto-line) (global-set-key "\e\C-r" 'isearch-backward-regexp) (global-set-key "\e#" 'query-replace-regexp)
Ett exempel på hur man sätter en variabel i ELisp:
(setq backup-by-copying-when-linked t)
Att skriva egna kommandon
(defun this-line-to-top-of-screen (line)
"documentation"
(interactive "P")
(recenter (if (null linr)
0
(prefix-numeric-value line))))
Argumentet till interactive är en sträng som specificerar
hur man anger argumenten när man anropar funktionen interaktivt.
Skriv C-h f interactive för mer information.
Senast uppdaterad: 19 oktober 2006
Sidansvarig:
Sven Olofsson



