7.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 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 Lockom til en ekstraCtrl
Terminologi for taster
-
C-<any>- Control
-
M-<any>- Meta er venstre-
Altpå de fleste maskiner (alternativtESC)
- Meta er venstre-
-
S-<any>- Shift
- Bruk
Bi stedet forS-bmed bokstaver
<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-gikke hjalp
- Bruk hvis
-
<prefix> C-g- Er alltid udefinert
- Altså kan
C-gbrukes 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 midten/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
-
DEL,M-DEL,C-M-DEL- Fjern forrige bokstav/ord/uttrykk
DELer "slettetasten", ikke "delete"
-
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
- Setter inn og fjerner kommentartegn etter behov
-
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-wogTAB - 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-stringfor utvalgte treff - Bruk
y=/=nfor om treffet skal erstattes
- Som
Søking
-
C-s- Søk fremover i bufferet
- Gjenta
C-sfor 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
efor å gjenta makroen
Pakker
- Emacs 29 kommer med innebygd pakkebehandler
- Det finnes tusenvis av pakker
-
M-x list-packages- Bla gjennom pakker
iMarker for å installereUMarker alle pakker for oppgraderingdMarker for slettingxUtfø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
-
Nyttige lenker
- Emacs-manualen
- Mastering Emacs
- System Crafters
-
Noen konfigurasjonsfiler: