Formatting
This commit is contained in:
parent
62dc2de5e9
commit
4f73ca9410
8
.dir-locals.el
Normal file
8
.dir-locals.el
Normal 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))))
|
265
foiler.org
265
foiler.org
@ -1,314 +1,299 @@
|
||||
#+TITLE: Emacskurs
|
||||
#+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
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- Før pause:
|
||||
- Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's
|
||||
maskiner
|
||||
|
||||
- Før pause:
|
||||
- Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's maskiner
|
||||
- Snakk om hva Emacs er
|
||||
- Gå raskt gjennom foilene og dekker «basics»
|
||||
- Etter pause:
|
||||
- Etter pause:
|
||||
- Mer praktiske eksempler.
|
||||
- Vise hvordan Org-mode fungerer, og hva det kan brukes til
|
||||
- Tar imot alt av spørsmål fra salen!
|
||||
|
||||
* Hva er Emacs?
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- Teksteditor
|
||||
- Utvidbar (Emacs Lisp)
|
||||
- Over 30 år gammel
|
||||
- Over 2500 innebygde kommandoer
|
||||
- Fri programvare
|
||||
|
||||
- Teksteditor
|
||||
- Utvidbar (Emacs Lisp)
|
||||
- Over 30 år gammel
|
||||
- Over 2500 innebygde kommandoer
|
||||
- Fri programvare
|
||||
|
||||
* Rammer, vinduer og buffere
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- Emacs åpnes i en ramme
|
||||
- Man kan ha flere vinduer i samme ramme
|
||||
- Tekst vises i buffere
|
||||
- Du kan ha så mange åpne buffere du vil
|
||||
- En fil åpnes i et nytt buffer
|
||||
- Minibufferet (nederste linje), brukes til å skrive inn filnavn, buffernavn, etc...
|
||||
|
||||
- Emacs åpnes i en ramme
|
||||
- Man kan ha flere vinduer i samme ramme
|
||||
- Tekst vises i buffere
|
||||
- Du kan ha så mange åpne buffere du vil
|
||||
- En fil åpnes i et nytt buffer
|
||||
- Minibufferet (nederste linje), brukes til å skrive inn filnavn, buffernavn, etc...
|
||||
|
||||
* Modes
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- Major 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
|
||||
- Minor modes
|
||||
- du kan ha så mange aktive minor modes du ønsker
|
||||
- en minor mode tilbyr tilleggsfunksjonalitet
|
||||
|
||||
- Modes tilføyer ofte egne tastekombinasjoner!
|
||||
- Modes tilføyer ofte egne tastekombinasjoner!
|
||||
|
||||
* 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=)
|
||||
- tving deg selv til å bruke de kommandoene du lærer til de sitter i fingrene
|
||||
- unngå «pek og klikk»
|
||||
|
||||
- etter hvert (for spesielt interesserte):
|
||||
- etter hvert (for spesielt interesserte):
|
||||
- skriv din egen config-fil
|
||||
- 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
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-<any>=
|
||||
|
||||
- =C-<any>=
|
||||
Control
|
||||
|
||||
- =M-<any>=
|
||||
- =M-<any>=
|
||||
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
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-x <any>=
|
||||
|
||||
- =C-x <any>=
|
||||
prefiks for globale kommandoer
|
||||
|
||||
- =C-c <any>=
|
||||
- =C-c <any>=
|
||||
prefiks for lokale kommandoer
|
||||
(har ikke alltid samme funksjon!)
|
||||
|
||||
- =C-h <any>=
|
||||
- =C-h <any>=
|
||||
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.
|
||||
|
||||
* Komme seg ut
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-x C-c=
|
||||
|
||||
- =C-x C-c=
|
||||
avslutt Emacs
|
||||
|
||||
- =C-g=
|
||||
- =C-g=
|
||||
avbryt
|
||||
(bruk hvis du ikke skjønner hva Emacs holder på med!)
|
||||
|
||||
- =ESC ESC ESC=
|
||||
- =ESC ESC ESC=
|
||||
(bruk hvis =C-g= ikke hjalp)
|
||||
|
||||
- =C-<prefix> C-g=
|
||||
- =C-<prefix> C-g=
|
||||
er udefinert
|
||||
(Dvs. =C-g= kan brukes til å avbryte prefiks)
|
||||
|
||||
* Tekstredigering
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-f=, =C-b=
|
||||
|
||||
- =C-f=, =C-b=
|
||||
flytt markøren ett tegn frem/tilbake
|
||||
|
||||
- =M-f=, =M-b=
|
||||
- =M-f=, =M-b=
|
||||
flytt markøren ett ord frem/tilbake
|
||||
|
||||
- =C-a=, =C-e=
|
||||
- =C-a=, =C-e=
|
||||
flytt markøren til begynnelsen/slutten av linja
|
||||
|
||||
- =C-p=, =C-n=
|
||||
- =C-p=, =C-n=
|
||||
flytt markøren til forrige/neste linje
|
||||
|
||||
* Bla rundt
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-v=, =M-v=
|
||||
|
||||
- =C-v=, =M-v=
|
||||
scroll ned/opp en side
|
||||
|
||||
- =M-<=, =M->=
|
||||
- =M-<=, =M->=
|
||||
gå til begynnelsen/slutten av bufferet
|
||||
|
||||
- =C-l=
|
||||
- =C-l=
|
||||
vis slik at markøren er i senter/toppen/bunnen
|
||||
|
||||
* Kill og yank
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-w=
|
||||
|
||||
- =C-w=
|
||||
kill, tilsvarer cut
|
||||
|
||||
- =C-y=
|
||||
- =C-y=
|
||||
yank, tilsvarer paste
|
||||
|
||||
- =M-w=
|
||||
- =M-w=
|
||||
lagre til kill-ring, tilsvarer copy
|
||||
|
||||
- =C-k=
|
||||
- =C-k=
|
||||
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
|
||||
|
||||
* Feiloppretting
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-d=, =M-d=
|
||||
|
||||
- =C-d=, =M-d=
|
||||
fjern neste bokstav/ord
|
||||
|
||||
- =C-_=, =C-/=, =C-x u=
|
||||
- =C-_=, =C-/=, =C-x u=
|
||||
undo!
|
||||
|
||||
- =C-t=, =M-t=
|
||||
- =C-t=, =M-t=
|
||||
bytt om to bokstaver/ord
|
||||
|
||||
- =C-x C-t=
|
||||
- =C-x C-t=
|
||||
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)
|
||||
|
||||
- =M-u=, =M-l=, =M-c=
|
||||
- =M-u=, =M-l=, =M-c=
|
||||
gjør neste ord til UPPERCASE/lowercase/Capital-Case
|
||||
|
||||
* Markering av tekst
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-SPC=
|
||||
|
||||
- =C-SPC=
|
||||
markerer tekst
|
||||
|
||||
- =C-x h=
|
||||
- =C-x h=
|
||||
markerer all tekst
|
||||
|
||||
- =M-h=
|
||||
- =M-h=
|
||||
markerer en paragraf
|
||||
|
||||
- Bruk i kombinasjon med =M-w=, =C-w= og =TAB=
|
||||
- Bruk i kombinasjon med =M-w=, =C-w= og =TAB=
|
||||
|
||||
* Filer
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-x C-f=
|
||||
|
||||
- =C-x C-f=
|
||||
åpne fil
|
||||
(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
|
||||
|
||||
- =C-x C-w=
|
||||
- =C-x C-w=
|
||||
skrive til fil (tilsvarende «lagre som...»)
|
||||
|
||||
* Vinduer
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-x 2=, =C-x 3=
|
||||
|
||||
- =C-x 2=, =C-x 3=
|
||||
splitt et vindu horisontalt/vertikalt
|
||||
|
||||
- =C-x 1=
|
||||
- =C-x 1=
|
||||
gjør det aktive vinduet til det eneste vinduet
|
||||
|
||||
- =C-x 0=
|
||||
- =C-x 0=
|
||||
lukk det aktive vinduet
|
||||
|
||||
- =C-x o=
|
||||
- =C-x o=
|
||||
bytt fokus til et annet vindu
|
||||
|
||||
* Buffere
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-x b RET=
|
||||
|
||||
- =C-x b RET=
|
||||
bytt buffer
|
||||
(siste besøkte buffer er default)
|
||||
|
||||
- =C-x k RET=
|
||||
- =C-x k RET=
|
||||
drep (kill) buffer
|
||||
(det aktive bufferet er default)
|
||||
|
||||
- =C-x left=, =C-x right=
|
||||
- =C-x left=, =C-x right=
|
||||
en annen måte å bytter buffer på
|
||||
|
||||
* Kommandoer
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =M-x function RET=
|
||||
|
||||
- =M-x function RET=
|
||||
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»
|
||||
|
||||
- =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-%=!)
|
||||
|
||||
- Bruk =TAB= for autocomplete!
|
||||
- Bruk =TAB= for autocomplete!
|
||||
|
||||
* Søking
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-s=
|
||||
|
||||
- =C-s=
|
||||
søk fremover i bufferet
|
||||
|
||||
- =C-r=
|
||||
- =C-r=
|
||||
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
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- =C-h k=
|
||||
|
||||
- =C-h k=
|
||||
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
|
||||
|
||||
- =C-h m=
|
||||
- =C-h m=
|
||||
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
|
||||
|
||||
- =C-h C-h= (eller: =C-h ?=)
|
||||
- =C-h C-h= (eller: =C-h ?=)
|
||||
gir deg hjelp om hjelpen
|
||||
|
||||
* 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!)
|
||||
|
||||
- =M-;=
|
||||
- =M-;=
|
||||
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
|
||||
(gir trykkbare linker til der feil oppstod)
|
||||
|
||||
- =M-g g <nr> RET=
|
||||
- =M-g g <nr> RET=
|
||||
flytter markøren til linjenummer =<nr>=
|
||||
|
||||
* 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
|
||||
|
||||
- =<f3>=
|
||||
- =<f3>=
|
||||
definer en makro /eller/ sett inn løpenummer
|
||||
|
||||
- =C-x )=, =<f4>=
|
||||
- =C-x )=, =<f4>=
|
||||
ferdigstill makroen
|
||||
|
||||
- =C-x e=
|
||||
- =C-x e=
|
||||
utfør makroen
|
||||
|
||||
- =e=
|
||||
gjenta makroen
|
||||
|
||||
* 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
|
||||
|
||||
- =i= installere
|
||||
@ -320,29 +305,29 @@
|
||||
- =x= utfør installering/oppgradering/sletting
|
||||
|
||||
* 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
|
||||
|
||||
- [[https://github.com/emacsmirror/undo-tree][Undo-Tree]]
|
||||
- [[https://github.com/emacsmirror/undo-tree][Undo-Tree]]
|
||||
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!
|
||||
|
||||
- [[https://github.com/oneKelvinSmith/monokai-emacs][Monokai]]
|
||||
- [[https://github.com/oneKelvinSmith/monokai-emacs][Monokai]]
|
||||
et fargetema (hentet fra Sublime)
|
||||
|
||||
* Nyttige lenker
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- [[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://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]]
|
||||
- [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]]
|
||||
|
||||
- [[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://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]]
|
||||
- [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]]
|
||||
|
||||
* Spørsmål?
|
||||
#+ATTR_REVEAL: :frag roll-in
|
||||
- Noen spørsmål nå?
|
||||
- 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]]!
|
||||
|
||||
- Noen spørsmål nå?
|
||||
- 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]]!
|
||||
|
@ -21,6 +21,8 @@
|
||||
| =M-b= | =backward-word= |
|
||||
| =C-a= | =move-beginning-of-line= |
|
||||
| =C-e= | =move-end-of-line= |
|
||||
| =C-n= | =next-line= |
|
||||
| =C-p= | =previous-line= |
|
||||
|---------------------+------------------------------------|
|
||||
| Bla Rundt | |
|
||||
|---------------------+------------------------------------|
|
||||
|
Loading…
Reference in New Issue
Block a user