Emacs Lathund

Small picture of me

Websida - CV/PDF - Kontak


Table of Contents

Detta dokument finns även i pdf

1 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".

2 Starta och avsluta

  • 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

3 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

4 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 k och sedan en tangent-komination för att se vad den
    kombinationen gör.
    • …eller slå första delen av en tangentbordskombination och sen
      C-h för att se alla som börjar med den kombinationen.
      • Alltså: C-c p C-h …visar alla kombinationer som börjar med
        C-c p
  • 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

5 Problem

  • 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

6 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.

7 Förflyttning

7.1 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

7.2 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

8 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

9 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

10 Utbyte av text

  • M-% interaktivt utbyte av text
  • M-x query-replace-regexp med hjälp av reguljära uttryck

Accepterade svar när man byter ut text interaktivt är:

  • 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)

11 Flera fönster

  • C-x 1 göm alla fönster (utom aktiva)
  • C-x 0 göm aktiva 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

12 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

13 Ä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

14 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
  • Skriv C-x ESC för att editera och upprepa senaste kommandot som
    använt sig av minibufferten. Föjande funktioner är definierade.
  • M-p Föregående kommando i minibufferten
  • M-n Nästa kommando i minibufferten

15 Buffertar

  • C-x b gå till en annan buffert
  • C-x C-b lista alla buffertar
  • C-x k ta bort en buffert

16 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

17 Stavningskontroll

  • M-$ kontrollera stavningen av ett ord
  • M-x spell-region kontrollera stavningen av området
  • M-x spell-buffer kontrollera stavningen i bufferten

18 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

19 Kommandotolk

  • 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

20 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

21 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

22 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

23 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

23.1 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

24 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

25 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)

25.1 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))))

Date: <2014-04-03 Thu>

Author: Johan Sandén

Created: 2017-01-12 Thu 06:28

Emacs 24.3.1 (Org mode 8.2.5h)

Validate