emacskurs/slides.org

6.1 KiB

Emacskurs

Plan for kurset

  • Introduksjon til bruk av Emacs (ca. 20 minutter)
  • Se en konfigurasjonsfil vokse frem (ca. 20 minutter)
  • Pizza! (for de som er påmeldt)
  • Workshop hvor vi hjelper deg komme i gang med Emacs (ca. 45 minutter)

Hva er Emacs?

  • Emacs er en teksteditor
  • Emacs er unikt utvidbar
  • Emacs er en Emacs Lisp maskin
  • Emacs er 48 år gammel
  • Emacs har over 10000 innebygde kommandoer
  • Emacs er fri programvare

Buffere, vinduer og rammer

  • Tekst lagres i buffere

    • Filer lastes inn i et buffer
    • Buffere kan skrives til fil
  • Et buffere vises i et vindu
  • En ramme kan inneholde ett eller flere vinduer
  • I bunnen av hver ramme er det et minibuffer

Modes

  • Major modes

    • hvert buffer har nøyaktig én aktiv major mode
    • en major mode gir deg funksjonalitet for en bestemt type tekstredigering
    • de fleste programmeringsspråk har sin egen major mode
  • Minor modes

    • du kan ha så mange aktive minor modes du ønsker
    • en minor mode tilbyr tilleggsfunksjonalitet
  • Modes tilføyer ofte egne tastekombinasjoner!

Tips

  • Emacs er annerledes å bruke enn mange andre programmer

    • Det krever tilvenning
  • I begynnelsen:

    • Les og gjør «learn-by-doing tutorial» (C-h t)
    • Tving deg selv til å bruke de kommandoene du lærer til de sitter i fingrene
    • Unngå «pek og klikk»
  • Etter hvert:

    • Skriv din egen konfigurasjonsfil
    • Lær litt Emacs Lisp, og skriv dine egne funksjoner
  • Gjør Caps Lock om til en ekstra Ctrl

Terminologi for taster

  • C-<any>

    • Control
  • M-<any>

    • Meta er Alt på de fleste maskiner (alternativt ESC)
  • <any> representerer et vilkårlig tegn eller tastekombinasjon

Prefikstaster

  • C-x <any>

    • Prefiks for globale kommandoer
  • C-c <any>

    • Prefiks for lokale kommandoer
    • Kan ha ulik oppførsel i ulike modes
  • C-h <any>

    • Prefiks for hjelp

Komme seg ut

  • C-x C-c

    • Avslutt Emacs
  • C-g

    • Avbryt
    • Bør spammes når Emacs forvirrer deg
  • ESC ESC ESC

    • Bruk hvis C-g ikke hjalp
  • <prefix> C-g

    • Er alltid udefinert
    • Altså kan C-g brukes til å avbryte prefiks

Tekstredigering

  • C-f, C-b

    • Flytt markøren ett tegn frem/tilbake
  • M-f, M-b

    • Flytt markøren ett ord frem/tilbake
  • C-M-f, C-M-b

    • Flytt markøren ett uttrykk frem/tilbake
  • C-a, C-e

    • Flytt markøren til begynnelsen/slutten av linja
  • C-p, C-n

    • Flytt markøren til forrige/neste linje

Bla rundt

  • C-v, M-v

    • Scroll ned/opp en side
  • M-<, M->

    • Gå til begynnelsen/slutten av bufferet
  • C-l

    • Juster vertikal visning av markøren til senter/toppen/bunnen

Kill og yank

  • C-w

    • Kill, tilsvarer cut
  • C-y

    • Yank, tilsvarer paste
  • M-w

    • Lagre til kill-ring, tilsvarer copy
  • C-k

    • Kill, drepe resten av en linje
  • M-y

    • Yank-pop, går lenger tilbake på kill-ring

Feiloppretting

  • C-d, M-d, C-M-d

    • Fjern neste bokstav/ord/uttrykk
  • C-_, C-/, C-x u

    • Undo!
  • C-t, M-t, C-M-t

    • Bytt om to bokstaver/ord/uttrykk
  • C-x C-t

    • Bytt om to linjer
  • M-q

    • Formaterer avsnitt til en fornuftig linjebredde
  • M-u, M-l, M-c

    • Gjør neste ord til UPPERCASE/lowercase/Capital-Case

Markering av tekst

  • C-SPC markerer tekst
  • C-x h markerer all tekst
  • M-h markerer en paragraf
  • Bruk i kombinasjon med M-w, C-w og TAB

Filer

  • C-x C-f åpne fil (hvis den ikke finnes fra før åpnes et tomt buffer med det nye filnavnet)
  • C-x C-s lagre buffer
  • C-x C-w skrive til fil (tilsvarende «lagre som…»)

Vinduer

  • C-x 2, C-x 3 splitt et vindu horisontalt/vertikalt
  • C-x 1 gjør det aktive vinduet til det eneste vinduet
  • C-x 0 lukk det aktive vinduet
  • C-x o bytt fokus til et annet vindu

Buffere

  • C-x b RET bytt buffer (siste besøkte buffer er default)
  • C-x k RET drep (kill) buffer (det aktive bufferet er default)
  • C-x left, C-x right en annen måte å bytter buffer på

Kommandoer

  • M-x <function> RET lar deg kalle en vilkårlig kommando med navn
  • M-x replace-string RET <from> RET <to> RET tilsvarer «search and replace»
  • M-x query-replace RET <from> RET <to> RETy/n samme som replace-string, men du kan velge hva som skal erstattes (kan også kjøres med M-%!)

Søking

  • C-s søk fremover i bufferet
  • C-r søk bakover i bufferet
  • Dette er en svært effektiv måte å flytte markøren på!

Hjelp til selvhjelp

  • C-h k bruk hvis du lurer på hva en tastekombinasjon gjør
  • C-h f bruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjør
  • C-h m gir deg informasjon om moden du er i (bl.a. tastekombinasjoner som er spesielle for moden)
  • C-h a apropos, lar deg søke i hjelpen
  • C-h C-h (eller: C-h ?) gir deg hjelp om hjelpen

Programmering

  • TAB indenterer riktig
  • M-; kommenterer ut et markert område
  • C-x C-; kommenterer ut linjen
  • M-x compile RET <compile-command> RET lar deg kompilere i Emacs (gir trykkbare linker til der feil oppstod)
  • M-g M-g <nr> RET flytter markøren til linjenummer <nr>

Makroer

  • Makroer er en måte å «ta opp» en rekke kommandoer på
  • C-x ( definer en makro
  • <f3> definer en makro eller sett inn løpenummer
  • C-x ), <f4> ferdigstill makroen
  • C-x e, <f4> utfør makroen

    • e gjenta makroen

Pakker

  • Emacs 29 kommer med innebygd pakkebehandler
  • det finnes tusenvis av pakker
  • M-x list-packages bla gjennom pakker

    • i installere
    • U oppgrader alle
    • d slett
    • x utfør installering/oppgradering/sletting
  • Alt dette bør heller gjøres i konfigurasjonsfilen

Anbefalinger