- blir + og sjekk diffen

This commit is contained in:
larstvei 2024-09-12 16:56:02 +02:00
parent 11625bd1dc
commit 0223c1189e

View File

@ -3,320 +3,320 @@
* Plan for kurset * Plan for kurset
- Før pause: + Før pause:
- Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's maskiner + Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's maskiner
- Snakk om hva Emacs er + Snakk om hva Emacs er
- Gå raskt gjennom foilene og dekker «basics» + Gå raskt gjennom foilene og dekker «basics»
- Etter pause: + Etter pause:
- Mer praktiske eksempler. + Mer praktiske eksempler.
- Vise hvordan Org-mode fungerer, og hva det kan brukes til + Vise hvordan Org-mode fungerer, og hva det kan brukes til
- Tar imot alt av spørsmål fra salen! + Tar imot alt av spørsmål fra salen!
* Hva er Emacs? * Hva er Emacs?
- Teksteditor + Teksteditor
- Utvidbar (Emacs Lisp) + Utvidbar (Emacs Lisp)
- Over 30 år gammel + Over 30 år gammel
- Over 2500 innebygde kommandoer + Over 2500 innebygde kommandoer
- Fri programvare + Fri programvare
* Rammer, vinduer og buffere * Rammer, vinduer og buffere
- Emacs åpnes i en ramme + Emacs åpnes i en ramme
- Man kan ha flere vinduer i samme ramme + Man kan ha flere vinduer i samme ramme
- Tekst vises i buffere + Tekst vises i buffere
- Du kan ha så mange åpne buffere du vil + Du kan ha så mange åpne buffere du vil
- En fil åpnes i et nytt buffer + En fil åpnes i et nytt buffer
- Minibufferet (nederste linje), brukes til å skrive inn filnavn, buffernavn, etc... + Minibufferet (nederste linje), brukes til å skrive inn filnavn, buffernavn, etc...
* Modes * Modes
- Major modes + Major modes
- hvert buffer har kun én aktiv major mode + hvert buffer har kun én aktiv major mode
- en major mode gir deg funksjonalitet for en bestemt type + en major mode gir deg funksjonalitet for en bestemt type
tekstredigering tekstredigering
- de fleste programmeringsspråk har sin egen major mode + de fleste programmeringsspråk har sin egen major mode
- Minor modes + Minor modes
- du kan ha så mange aktive minor modes du ønsker + du kan ha så mange aktive minor modes du ønsker
- en minor mode tilbyr tilleggsfunksjonalitet + en minor mode tilbyr tilleggsfunksjonalitet
- Modes tilføyer ofte egne tastekombinasjoner! + Modes tilføyer ofte egne tastekombinasjoner!
* Tips * Tips
- Emacs er annerledes å bruke enn mange andre programmer, så det krever tilvenning. + Emacs er annerledes å bruke enn mange andre programmer, så det krever tilvenning.
- i begynnelsen: + i begynnelsen:
- les og gjør «learn-by-doing tutorial» (=C-h t=) + 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 + tving deg selv til å bruke de kommandoene du lærer til de sitter i fingrene
- unngå «pek og klikk» + unngå «pek og klikk»
- etter hvert (for spesielt interesserte): + etter hvert (for spesielt interesserte):
- skriv din egen config-fil + skriv din egen config-fil
- lær litt Emacs lisp, og skriv dine egne funksjoner + lær litt Emacs lisp, og skriv dine egne funksjoner
- gjør =CAPS-LOCK= om til en ekstra Control (=Ctrl=) + gjør =CAPS-LOCK= om til en ekstra Control (=Ctrl=)
* Terminologi for taster * Terminologi for taster
- =C-<any>= + =C-<any>=
Control Control
- =M-<any>= + =M-<any>=
Meta er =Alt= på de fleste maskiner (alternativt =ESC=) Meta er =Alt= på de fleste maskiner (alternativt =ESC=)
- =<any>= betyr et vilkårlig tegn (eller tastekombinasjon) + =<any>= betyr et vilkårlig tegn (eller tastekombinasjon)
* Prefikstaster * Prefikstaster
- =C-x <any>= + =C-x <any>=
prefiks for globale kommandoer prefiks for globale kommandoer
- =C-c <any>= + =C-c <any>=
prefiks for lokale kommandoer prefiks for lokale kommandoer
(har ikke alltid samme funksjon!) (har ikke alltid samme funksjon!)
- =C-h <any>= + =C-h <any>=
prefiks for hjelp prefiks for hjelp
- Alle tastekombinasjoner som ikke er en prefiks er enten bundet til en + Alle tastekombinasjoner som ikke er en prefiks er enten bundet til en
kommando eller udefinert. kommando eller udefinert.
* Komme seg ut * Komme seg ut
- =C-x C-c= + =C-x C-c=
avslutt Emacs avslutt Emacs
- =C-g= + =C-g=
avbryt avbryt
(bruk hvis du ikke skjønner hva Emacs holder på med!) (bruk hvis du ikke skjønner hva Emacs holder på med!)
- =ESC ESC ESC= + =ESC ESC ESC=
(bruk hvis =C-g= ikke hjalp) (bruk hvis =C-g= ikke hjalp)
- =<prefix> C-g= + =<prefix> C-g=
er udefinert er udefinert
(Dvs. =C-g= kan brukes til å avbryte prefiks) (Dvs. =C-g= kan brukes til å avbryte prefiks)
* Tekstredigering * Tekstredigering
- =C-f=, =C-b= + =C-f=, =C-b=
flytt markøren ett tegn frem/tilbake flytt markøren ett tegn frem/tilbake
- =M-f=, =M-b= + =M-f=, =M-b=
flytt markøren ett ord frem/tilbake flytt markøren ett ord frem/tilbake
- =C-M-f=, =C-M-b= + =C-M-f=, =C-M-b=
flytt markøren ett uttrykk frem/tilbake flytt markøren ett uttrykk frem/tilbake
- =C-a=, =C-e= + =C-a=, =C-e=
flytt markøren til begynnelsen/slutten av linja flytt markøren til begynnelsen/slutten av linja
- =C-p=, =C-n= + =C-p=, =C-n=
flytt markøren til forrige/neste linje flytt markøren til forrige/neste linje
* Bla rundt * Bla rundt
- =C-v=, =M-v= + =C-v=, =M-v=
scroll ned/opp en side scroll ned/opp en side
- =M-<=, =M->= + =M-<=, =M->=
gå til begynnelsen/slutten av bufferet gå til begynnelsen/slutten av bufferet
- =C-l= + =C-l=
vis slik at markøren er i senter/toppen/bunnen vis slik at markøren er i senter/toppen/bunnen
* Kill og yank * Kill og yank
- =C-w= + =C-w=
kill, tilsvarer cut kill, tilsvarer cut
- =C-y= + =C-y=
yank, tilsvarer paste yank, tilsvarer paste
- =M-w= + =M-w=
lagre til kill-ring, tilsvarer copy lagre til kill-ring, tilsvarer copy
- =C-k= + =C-k=
kill, drepe resten av en linje kill, drepe resten av en linje
- =M-y=, må etterfølges av =C-y= + =M-y=, må etterfølges av =C-y=
yank-pop, går lenger tilbake på kill-ring yank-pop, går lenger tilbake på kill-ring
* Feiloppretting * Feiloppretting
- =C-d=, =M-d= + =C-d=, =M-d=
fjern neste bokstav/ord fjern neste bokstav/ord
- =C-_=, =C-/=, =C-x u= + =C-_=, =C-/=, =C-x u=
undo! undo!
- =C-t=, =M-t= + =C-t=, =M-t=
bytt om to bokstaver/ord bytt om to bokstaver/ord
- =C-x C-t= + =C-x C-t=
bytt om to linjer bytt om to linjer
- =M-q= + =M-q=
plasserer om tekst i en paragraf slik at linjene ikke overstiger 70 tegn (den ødelegger ikke syntaks i programmeringmodes) plasserer om tekst i en paragraf slik at linjene ikke overstiger 70 tegn (den ødelegger ikke syntaks i programmeringmodes)
- =M-u=, =M-l=, =M-c= + =M-u=, =M-l=, =M-c=
gjør neste ord til UPPERCASE/lowercase/Capital-Case gjør neste ord til UPPERCASE/lowercase/Capital-Case
* Markering av tekst * Markering av tekst
- =C-SPC= + =C-SPC=
markerer tekst markerer tekst
- =C-x h= + =C-x h=
markerer all tekst markerer all tekst
- =M-h= + =M-h=
markerer en paragraf markerer en paragraf
- Bruk i kombinasjon med =M-w=, =C-w= og =TAB= + Bruk i kombinasjon med =M-w=, =C-w= og =TAB=
* Filer * Filer
- =C-x C-f= + =C-x C-f=
åpne fil åpne fil
(hvis den ikke finnes fra før åpnes et tomt buffer med det nye filnavnet) (hvis den ikke finnes fra før åpnes et tomt buffer med det nye filnavnet)
- =C-x C-s= + =C-x C-s=
lagre buffer lagre buffer
- =C-x C-w= + =C-x C-w=
skrive til fil (tilsvarende «lagre som...») skrive til fil (tilsvarende «lagre som...»)
* Vinduer * Vinduer
- =C-x 2=, =C-x 3= + =C-x 2=, =C-x 3=
splitt et vindu horisontalt/vertikalt splitt et vindu horisontalt/vertikalt
- =C-x 1= + =C-x 1=
gjør det aktive vinduet til det eneste vinduet gjør det aktive vinduet til det eneste vinduet
- =C-x 0= + =C-x 0=
lukk det aktive vinduet lukk det aktive vinduet
- =C-x o= + =C-x o=
bytt fokus til et annet vindu bytt fokus til et annet vindu
* Buffere * Buffere
- =C-x b RET= + =C-x b RET=
bytt buffer bytt buffer
(siste besøkte buffer er default) (siste besøkte buffer er default)
- =C-x k RET= + =C-x k RET=
drep (kill) buffer drep (kill) buffer
(det aktive bufferet er default) (det aktive bufferet er default)
- =C-x left=, =C-x right= + =C-x left=, =C-x right=
en annen måte å bytter buffer på en annen måte å bytter buffer på
* Kommandoer * Kommandoer
- =M-x <function> RET= + =M-x <function> RET=
lar deg kalle en vilkårlig kommando med navn lar deg kalle en vilkårlig kommando med navn
- =M-x replace-string RET <from> RET <to> RET= + =M-x replace-string RET <from> RET <to> RET=
tilsvarer «search and replace» tilsvarer «search and replace»
- =M-x query-replace RET <from> RET <to> RET= ... =y/n= + =M-x query-replace RET <from> RET <to> RET= ... =y/n=
samme som =replace-string=, men du kan velge hva som skal erstattes (kan også kjøres med =M-%=!) samme som =replace-string=, men du kan velge hva som skal erstattes (kan også kjøres med =M-%=!)
* Søking * Søking
- =C-s= + =C-s=
søk fremover i bufferet søk fremover i bufferet
- =C-r= + =C-r=
søk bakover i bufferet søk bakover i bufferet
- Dette er en /svært/ effektiv måte å flytte markøren på! + Dette er en /svært/ effektiv måte å flytte markøren på!
* Hjelp til selvhjelp * Hjelp til selvhjelp
- =C-h k= + =C-h k=
bruk hvis du lurer på hva en tastekombinasjon gjør bruk hvis du lurer på hva en tastekombinasjon gjør
- =C-h f= + =C-h f=
bruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjør bruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjør
- =C-h m= + =C-h m=
gir deg informasjon om moden du er i (bl.a. tastekombinasjoner som er spesielle for moden) gir deg informasjon om moden du er i (bl.a. tastekombinasjoner som er spesielle for moden)
- =C-h a= + =C-h a=
apropos, lar deg søke i hjelpen apropos, lar deg søke i hjelpen
- =C-h C-h= (eller: =C-h ?=) + =C-h C-h= (eller: =C-h ?=)
gir deg hjelp om hjelpen gir deg hjelp om hjelpen
* Programmering * Programmering
- =TAB= + =TAB=
indenterer riktig indenterer riktig
- =M-;= + =M-;=
kommenterer ut et markert område kommenterer ut et markert område
- =C-x C-;= + =C-x C-;=
kommenterer ut linjen kommenterer ut linjen
- =M-x compile RET <compile-command> RET= + =M-x compile RET <compile-command> RET=
lar deg kompilere i Emacs lar deg kompilere i Emacs
(gir trykkbare linker til der feil oppstod) (gir trykkbare linker til der feil oppstod)
- =M-g M-g <nr> RET= + =M-g M-g <nr> RET=
flytter markøren til linjenummer =<nr>= flytter markøren til linjenummer =<nr>=
* Makroer * Makroer
- Makroer er en måte å «ta opp» en rekke kommandoer på + Makroer er en måte å «ta opp» en rekke kommandoer på
- =C-x (= + =C-x (=
definer en makro definer en makro
- =<f3>= + =<f3>=
definer en makro /eller/ sett inn løpenummer definer en makro /eller/ sett inn løpenummer
- =C-x )=, =<f4>= + =C-x )=, =<f4>=
ferdigstill makroen ferdigstill makroen
- =C-x e=, =<f4>= + =C-x e=, =<f4>=
utfør makroen utfør makroen
- =e= + =e=
gjenta makroen gjenta makroen
* Pakker * Pakker
- Emacs 29 kommer med innebygd pakkebehandler + Emacs 29 kommer med innebygd pakkebehandler
- det finnes tusenvis av pakker + det finnes tusenvis av pakker
- =M-x list-packages= + =M-x list-packages=
bla gjennom pakker bla gjennom pakker
- =i= installere + =i= installere
- =U= oppgrader alle + =U= oppgrader alle
- =d= slett + =d= slett
- =x= utfør installering/oppgradering/sletting + =x= utfør installering/oppgradering/sletting
- Alt dette bør heller gjøres i konfigurasjonsfilen + Alt dette bør heller gjøres i konfigurasjonsfilen
* Anbefalinger * Anbefalinger
- [[https://github.com/magnars/multiple-cursors.el][Multiple cursors]] ([[http://emacsrocks.com/e13.html][demo]]) + [[https://github.com/magnars/multiple-cursors.el][Multiple cursors]] ([[http://emacsrocks.com/e13.html][demo]])
lar deg kontrollere flere markører samtidig! lar deg kontrollere flere markører samtidig!
* Nyttige lenker * Nyttige lenker
- [[http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html#Top][Emacs-manualen]] + [[http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html#Top][Emacs-manualen]]
- [[http://www.masteringemacs.org/reading-guide/][En flott blogg om Emacs]] + [[http://www.masteringemacs.org/reading-guide/][En flott blogg om Emacs]]
- [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]] + [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]]