6.5 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 selvdokumenterende
- Emacs har over 10000 innebygde kommandoer
- Emacs er fri programvare
- Emacs er 48 år gammel
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 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
- Start markering av tekst
-
C-x h
- Markerer all tekst
-
M-h
- Markerer en paragraf
- Bruk i kombinasjon med
M-w
,C-w
ogTAB
- Undo respekterer den markerte regionen
Filer
-
C-x C-f
- Åpne eller opprett fil
-
C-x C-s
- Skriv bufferet til fil
-
C-x C-w
- Skriv bufferet til en ny 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
-
C-x k RET
- Drep (kill) buffer
-
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 ved navn
-
M-x replace-string RET <from> RET <to> RET
- Tilsvarer «search and replace»
-
M-%
,M-x query-replace RET <from> RET <to> RET
- Som
replace-string
for utvalgte treff - Bruk
y=/=n
for om treffet skal erstattes
- Som
Søking
-
C-s
- Søk fremover i bufferet
- Gjenta
C-s
for neste treff - Avslutt med
RET
-
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 vil vite hva en funksjon gjør
-
C-h v
- Bruk hvis du vil vite hva en variabel er bundet til og brukes til
-
C-h m
- Gir deg informasjon om aktive modes
-
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 på slutten av linjen eller et markert område
-
C-x C-;
- Kommenterer ut linjen
-
M-x compile RET <compile-command> RET
- Lar deg kjøre en vilkårlig kommando for å kompilere
- Gir trykkbare linker til der det oppstod feil
-
M-g M-g <nr> RET
- Flytter markøren til linjenummer
<nr>
- Flytter markøren til linjenummer
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
- Bruk
e
for å gjenta makroen
Pakker
- Emacs 29 kommer med innebygd pakkebehandler
- Det finnes tusenvis av pakker
-
M-x list-packages
- Bla gjennom pakker
i
Marker for å installereU
Marker alle pakker for oppgraderingd
Marker for slettingx
Utfør installering/oppgradering/sletting
- Dette bør heller gjøres i konfigurasjonsfilen
Anbefalinger
-
- Lar deg kontrollere flere markører samtidig!
-
- Det beste grensesnittet til Git
-
-
Et markup språk med fantastisk støtte for
- Notater
- Publisering
- Literate programming
- … masse mer
-