6.1 KiB
6.1 KiB
Emacskurs
- Plan for kurset
- Hva er Emacs?
- Buffere, vinduer og rammer
- Modes
- Tips
- Terminologi for taster
- Prefikstaster
- Komme seg ut
- Tekstredigering
- Bla rundt
- Kill og yank
- Feiloppretting
- Markering av tekst
- Filer
- Vinduer
- Buffere
- Kommandoer
- Søking
- Hjelp til selvhjelp
- Programmering
- Makroer
- Pakker
- Anbefalinger
- Nyttige lenker
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»
- Les og gjør «learn-by-doing tutorial» (
-
Etter hvert:
- Skriv din egen konfigurasjonsfil
- Lær litt Emacs Lisp, og skriv dine egne funksjoner
- Gjør
Caps Lock
om til en ekstraCtrl
Terminologi for taster
-
C-<any>
- Control
-
M-<any>
- Meta er
Alt
på de fleste maskiner (alternativtESC
)
- Meta er
<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
- Bruk hvis
-
<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 cutC-y
yank, tilsvarer pasteM-w
lagre til kill-ring, tilsvarer copyC-k
kill, drepe resten av en linjeM-y
, må etterfølges avC-y
yank-pop, går lenger tilbake på kill-ring
Feiloppretting
C-d
,M-d
fjern neste bokstav/ordC-_
,C-/
,C-x u
undo!C-t
,M-t
bytt om to bokstaver/ordC-x C-t
bytt om to linjerM-q
formaterer avsnitt til en fornuftig linjebreddeM-u
,M-l
,M-c
gjør neste ord til UPPERCASE/lowercase/Capital-Case
Markering av tekst
C-SPC
markerer tekstC-x h
markerer all tekstM-h
markerer en paragraf- Bruk i kombinasjon med
M-w
,C-w
ogTAB
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 bufferC-x C-w
skrive til fil (tilsvarende «lagre som…»)
Vinduer
C-x 2
,C-x 3
splitt et vindu horisontalt/vertikaltC-x 1
gjør det aktive vinduet til det eneste vinduetC-x 0
lukk det aktive vinduetC-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 navnM-x replace-string RET <from> RET <to> RET
tilsvarer «search and replace»M-x query-replace RET <from> RET <to> RET
…y/n
samme somreplace-string
, men du kan velge hva som skal erstattes (kan også kjøres medM-%
!)
Søking
C-s
søk fremover i bufferetC-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ørC-h f
bruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjørC-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 hjelpenC-h C-h
(eller:C-h ?
) gir deg hjelp om hjelpen
Programmering
TAB
indenterer riktigM-;
kommenterer ut et markert områdeC-x C-;
kommenterer ut linjenM-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øpenummerC-x )
,<f4>
ferdigstill makroen-
C-x e
,<f4>
utfør makroene
gjenta makroen
Pakker
- Emacs 29 kommer med innebygd pakkebehandler
- det finnes tusenvis av pakker
-
M-x list-packages
bla gjennom pakkeri
installereU
oppgrader alled
slettx
utfør installering/oppgradering/sletting
- Alt dette bør heller gjøres i konfigurasjonsfilen
Anbefalinger
- Multiple cursors (demo) lar deg kontrollere flere markører samtidig!