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 kun é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, så 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 (for spesielt interesserte):
- skriv din egen config-fil
- lær litt Emacs lisp, og skriv dine egne funksjoner
- gjør
CAPS-LOCKom til en ekstra Control (Ctrl)
Terminologi for taster
C-<any>ControlM-<any>Meta erAltpå de fleste maskiner (alternativtESC)<any>betyr et vilkårlig tegn (eller tastekombinasjon)
Prefikstaster
C-x <any>prefiks for globale kommandoerC-c <any>prefiks for lokale kommandoer (har ikke alltid samme funksjon!)C-h <any>prefiks for hjelp- Alle tastekombinasjoner som ikke er en prefiks er enten bundet til en kommando eller udefinert.
Komme seg ut
C-x C-cavslutt EmacsC-gavbryt (bruk hvis du ikke skjønner hva Emacs holder på med!)ESC ESC ESC(bruk hvisC-gikke hjalp)<prefix> C-ger udefinert (Dvs.C-gkan brukes til å avbryte prefiks)
Tekstredigering
C-f,C-bflytt markøren ett tegn frem/tilbakeM-f,M-bflytt markøren ett ord frem/tilbakeC-M-f,C-M-bflytt markøren ett uttrykk frem/tilbakeC-a,C-eflytt markøren til begynnelsen/slutten av linjaC-p,C-nflytt markøren til forrige/neste linje
Bla rundt
C-v,M-vscroll ned/opp en sideM-<,M->gå til begynnelsen/slutten av bufferetC-lvis slik at markøren er i senter/toppen/bunnen
Kill og yank
C-wkill, tilsvarer cutC-yyank, tilsvarer pasteM-wlagre til kill-ring, tilsvarer copyC-kkill, drepe resten av en linjeM-y, må etterfølges avC-yyank-pop, går lenger tilbake på kill-ring
Feiloppretting
C-d,M-dfjern neste bokstav/ordC-_,C-/,C-x uundo!C-t,M-tbytt om to bokstaver/ordC-x C-tbytt om to linjerM-qformaterer avsnitt til en fornuftig linjebreddeM-u,M-l,M-cgjør neste ord til UPPERCASE/lowercase/Capital-Case
Markering av tekst
C-SPCmarkerer tekstC-x hmarkerer all tekstM-hmarkerer en paragraf- Bruk i kombinasjon med
M-w,C-wogTAB
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-slagre bufferC-x C-wskrive til fil (tilsvarende «lagre som…»)
Vinduer
C-x 2,C-x 3splitt et vindu horisontalt/vertikaltC-x 1gjør det aktive vinduet til det eneste vinduetC-x 0lukk det aktive vinduetC-x obytt fokus til et annet vindu
Buffere
C-x b RETbytt buffer (siste besøkte buffer er default)C-x k RETdrep (kill) buffer (det aktive bufferet er default)C-x left,C-x righten annen måte å bytter buffer på
Kommandoer
M-x <function> RETlar deg kalle en vilkårlig kommando med navnM-x replace-string RET <from> RET <to> RETtilsvarer «search and replace»M-x query-replace RET <from> RET <to> RET…y/nsamme somreplace-string, men du kan velge hva som skal erstattes (kan også kjøres medM-%!)
Søking
C-ssøk fremover i bufferetC-rsøk bakover i bufferet- Dette er en svært effektiv måte å flytte markøren på!
Hjelp til selvhjelp
C-h kbruk hvis du lurer på hva en tastekombinasjon gjørC-h fbruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjørC-h mgir deg informasjon om moden du er i (bl.a. tastekombinasjoner som er spesielle for moden)C-h aapropos, lar deg søke i hjelpenC-h C-h(eller:C-h ?) gir deg hjelp om hjelpen
Programmering
TABindenterer riktigM-;kommenterer ut et markert områdeC-x C-;kommenterer ut linjenM-x compile RET <compile-command> RETlar deg kompilere i Emacs (gir trykkbare linker til der feil oppstod)M-g M-g <nr> RETflytter 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 makroenegjenta makroen
Pakker
- Emacs 29 kommer med innebygd pakkebehandler
- det finnes tusenvis av pakker
-
M-x list-packagesbla gjennom pakkeriinstallereUoppgrader alledslettxutfør installering/oppgradering/sletting
- Alt dette bør heller gjøres i konfigurasjonsfilen
Anbefalinger
- Multiple cursors (demo) lar deg kontrollere flere markører samtidig!