Formatting

This commit is contained in:
larstvei 2024-09-04 11:05:44 +02:00
parent 62dc2de5e9
commit 4f73ca9410
3 changed files with 226 additions and 231 deletions

8
.dir-locals.el Normal file
View File

@ -0,0 +1,8 @@
;;; Directory Local Variables -*- no-byte-compile: t -*-
;;; For more information see (info "(emacs) Directory Variables")
((nil . ((sentence-end-double-space . t)
(fill-column . 80)))
(org-mode . ((org-edit-src-content-indentation . 0)
(org-adapt-indentation . nil)
(org-hide-emphasis-markers . nil))))

View File

@ -1,314 +1,299 @@
#+TITLE: Emacskurs #+TITLE: Emacskurs
#+EMAIL: larstvei@ifi.uio.no #+EMAIL: larstvei@ifi.uio.no
#+GITHUB: http://github.com/larstvei
#+OPTIONS: num:nil toc:nil \n:1
#+BEAMER_THEME: Rochester
#+LaTeX_CLASS_OPTIONS: [aspectratio=169]
#+LaTeX_HEADER:\usepackage{beamerthemesplit}
#+LaTeX_HEADER:\setbeamersize{text margin left=0.1em}
#+LaTeX_HEADER:\setbeamersize{text margin right=0.1em}
#+REVEAL_TRANS: zoom
#+REVEAL_THEME: serif
#+REVEAL_SPEED: fast
#+REVEAL_HLEVEL: 1
* Plan for kurset * Plan for kurset
#+ATTR_REVEAL: :frag roll-in
- Før pause: - Før pause:
- Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's - Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's maskiner
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?
#+ATTR_REVEAL: :frag roll-in
- 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
#+ATTR_REVEAL: :frag roll-in
- 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
#+ATTR_REVEAL: :frag roll-in
- 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
#+ATTR_REVEAL: :frag roll-in
- Emacs er annerledes å bruke enn mange andre programmer, så det krever tilvenning.
- i begynnelsen: - 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=) - 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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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)
- =C-<prefix> C-g= - =C-<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
#+ATTR_REVEAL: :frag roll-in
- =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-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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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 erstatt RET med RET= - =M-x replace-string RET erstatt RET med RET=
tilsvarer «search and replace» tilsvarer «search and replace»
- =M-x query-replace RET erstatt RET med RET= ... =y/n= - =M-x query-replace RET erstatt RET med 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-%=!)
- Bruk =TAB= for autocomplete! - Bruk =TAB= for autocomplete!
* Søking * Søking
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =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
#+ATTR_REVEAL: :frag roll-in
- =TAB= - =TAB=
indenterer riktig (dersom indenteringen er gal er det et tegn på at det er noe galt i koden!) indenterer riktig (dersom indenteringen er gal er det et tegn på at det er noe galt i koden!)
- =M-;= - =M-;=
kommenterer ut et markert område kommenterer ut et markert område
- =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 g <nr> RET= - =M-g g <nr> RET=
flytter markøren til linjenummer =<nr>= flytter markøren til linjenummer =<nr>=
* Makroer * Makroer
#+ATTR_REVEAL: :frag roll-in
- Makroer er en måte å "ta opp" en rekke kommandoer på
- =C-x (= - Makroer er en måte å "ta opp" en rekke kommandoer på
- =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= - =C-x e=
utfør makroen utfør makroen
- =e= - =e=
gjenta makroen gjenta makroen
* Pakker * Pakker
#+ATTR_REVEAL: :frag roll-in
- Emacs 24 kommer med innebygd pakkebehandler
- det finnes tusenvis av pakker - Emacs 24 kommer med innebygd pakkebehandler
- =M-x list-packages= - det finnes tusenvis av pakker
- =M-x list-packages=
bla gjennom pakker bla gjennom pakker
- =i= installere - =i= installere
@ -320,29 +305,29 @@
- =x= utfør installering/oppgradering/sletting - =x= utfør installering/oppgradering/sletting
* Anbefalinger * Anbefalinger
#+ATTR_REVEAL: :frag roll-in
- [[https://github.com/auto-complete/auto-complete][Auto-Complete]] - [[https://github.com/auto-complete/auto-complete][Auto-Complete]]
viser mulige fullføringer viser mulige fullføringer
- [[https://github.com/emacsmirror/undo-tree][Undo-Tree]] - [[https://github.com/emacsmirror/undo-tree][Undo-Tree]]
et mer standard undo-system, med trestruktur et mer standard undo-system, med trestruktur
- [[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!
- [[https://github.com/oneKelvinSmith/monokai-emacs][Monokai]] - [[https://github.com/oneKelvinSmith/monokai-emacs][Monokai]]
et fargetema (hentet fra Sublime) et fargetema (hentet fra Sublime)
* Nyttige lenker * Nyttige lenker
#+ATTR_REVEAL: :frag roll-in
- [[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://termvakt.ifi.uio.no/Emacs][Termvaktens guide til Emacs]] - [[http://termvakt.ifi.uio.no/Emacs][Termvaktens guide til Emacs]]
- [[http://www.masteringemacs.org/reading-guide/][En flott blogg om Emacs]] - [[http://www.masteringemacs.org/reading-guide/][En flott blogg om Emacs]]
- [[http://www.ic.unicamp.br/%7Ehelio/disciplinas/MC102/Emacs_Reference_Card.pdf][En cheat-sheet for Emacs]] - [[http://www.ic.unicamp.br/%7Ehelio/disciplinas/MC102/Emacs_Reference_Card.pdf][En cheat-sheet for Emacs]]
- [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]] - [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]]
* Spørsmål? * Spørsmål?
#+ATTR_REVEAL: :frag roll-in
- Noen spørsmål nå? - Noen spørsmål nå?
- Kom ned i pausen hvis dere har spørsmål eller ønske for neste time! - Kom ned i pausen hvis dere har spørsmål eller ønske for neste time!
- Gjerne send mail til [[mailto:larstvei@ifi.uio.no][larstvei@ifi.uio.no]]! - Gjerne send mail til [[mailto:larstvei@ifi.uio.no][larstvei@ifi.uio.no]]!

View File

@ -21,6 +21,8 @@
| =M-b= | =backward-word= | | =M-b= | =backward-word= |
| =C-a= | =move-beginning-of-line= | | =C-a= | =move-beginning-of-line= |
| =C-e= | =move-end-of-line= | | =C-e= | =move-end-of-line= |
| =C-n= | =next-line= |
| =C-p= | =previous-line= |
|---------------------+------------------------------------| |---------------------+------------------------------------|
| Bla Rundt | | | Bla Rundt | |
|---------------------+------------------------------------| |---------------------+------------------------------------|