Compare commits
	
		
			No commits in common. "4f73ca9410a628e45bf58c978582f4999d7fb453" and "a7137c6dcec172fef7ed99c01059d81ab279957c" have entirely different histories.
		
	
	
		
			4f73ca9410
			...
			a7137c6dce
		
	
		
@ -1,8 +0,0 @@
 | 
				
			|||||||
;;; 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))))
 | 
					 | 
				
			||||||
@ -119,7 +119,7 @@ called autosaves located wherever your .emacs.d/ is located.")
 | 
				
			|||||||
        (end (if (region-active-p) (region-end)       (point-max))))
 | 
					        (end (if (region-active-p) (region-end)       (point-max))))
 | 
				
			||||||
    (whitespace-cleanup)
 | 
					    (whitespace-cleanup)
 | 
				
			||||||
    (indent-region beg end nil)
 | 
					    (indent-region beg end nil)
 | 
				
			||||||
    (untabify (if (region-active-p) (region-beginning) (point-min))
 | 
					
 | 
				
			||||||
              (if (region-active-p) (region-end)       (point-max)))))
 | 
					    (untabify beg end)))
 | 
				
			||||||
;; bindes the tidy-function to C-TAB
 | 
					;; bindes the tidy-function to C-TAB
 | 
				
			||||||
(global-set-key (kbd "<C-tab>") 'tidy)
 | 
					(global-set-key (kbd "<C-tab>") 'tidy)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										474
									
								
								foiler.org
									
									
									
									
									
								
							
							
						
						
									
										474
									
								
								foiler.org
									
									
									
									
									
								
							@ -1,333 +1,379 @@
 | 
				
			|||||||
#+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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#+REVEAL_TRANS: linear
 | 
				
			||||||
 | 
					#+REVEAL_THEME: night
 | 
				
			||||||
 | 
					#+REVEAL_THEME: moon
 | 
				
			||||||
 | 
					#+REVEAL_SPEED: fast
 | 
				
			||||||
 | 
					#+REVEAL_HLEVEL: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Plan for kurset
 | 
					* Plan for kurset
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  # - Før pause:
 | 
				
			||||||
 | 
					  #   - Innføring i Emacs
 | 
				
			||||||
 | 
					  #   - Nyttige kommander
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Før pause:
 | 
					  # - Etter pause:
 | 
				
			||||||
  - Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's maskiner
 | 
					  #   - Sette opp Emacs på Ifi's maskiner
 | 
				
			||||||
  - Snakk om hva Emacs er
 | 
					  #   - Skrive en enkel konfigurasjonsfil
 | 
				
			||||||
  - Gå raskt gjennom foilene og dekker «basics»
 | 
					  #   - Bruke det vi lærte før pause
 | 
				
			||||||
- Etter pause:
 | 
					  - Før pause:
 | 
				
			||||||
  - Mer praktiske eksempler.
 | 
					    - Liten demonstrasjon av hvordan man kommer igang med Emacs på Ifi's
 | 
				
			||||||
  - Vise hvordan Org-mode fungerer, og hva det kan brukes til
 | 
					      maskiner
 | 
				
			||||||
  - Tar imot alt av spørsmål fra salen!
 | 
					    - Snakk om hva Emacs er
 | 
				
			||||||
 | 
					    - Gå raskt gjennom foilene og dekker «basics»
 | 
				
			||||||
 | 
					  - 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?
 | 
					* Hva er Emacs?
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
- Teksteditor
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
- Utvidbar (Emacs Lisp)
 | 
					  - Teksteditor
 | 
				
			||||||
- Over 30 år gammel
 | 
					  - Utvidbar (Emacs Lisp)
 | 
				
			||||||
- Over 2500 innebygde kommandoer
 | 
					  - Over 30 år gammel
 | 
				
			||||||
- Fri programvare
 | 
					  - Over 2500 innebygde kommandoer
 | 
				
			||||||
 | 
					  - Fri programvare
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Rammer, vinduer og buffere
 | 
					* Rammer, vinduer og buffere
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
- Emacs åpnes i en ramme
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
- Man kan ha flere vinduer i samme ramme
 | 
					  - Emacs åpnes i en ramme
 | 
				
			||||||
- Tekst vises i buffere
 | 
					  - Man kan ha flere vinduer i samme ramme
 | 
				
			||||||
- Du kan ha så mange åpne buffere du vil
 | 
					  - Tekst vises i buffere
 | 
				
			||||||
- En fil åpnes i et nytt buffer
 | 
					  - Du kan ha så mange åpne buffere du vil
 | 
				
			||||||
- Minibufferet (nederste linje), brukes til å skrive inn filnavn, buffernavn, etc...
 | 
					  - En fil åpnes i et nytt buffer
 | 
				
			||||||
 | 
					  - Minibufferet (nederste linje), brukes til å skrive inn filnavn, buffernavn, etc...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Modes
 | 
					* Modes
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Major modes
 | 
					  - Minor modes
 | 
				
			||||||
  - hvert buffer har kun én aktiv major mode
 | 
					    - du kan ha så mange aktive minor modes du ønsker
 | 
				
			||||||
  - en major mode gir deg funksjonalitet for en bestemt type
 | 
					    - en minor mode tilbyr tilleggsfunksjonalitet
 | 
				
			||||||
    tekstredigering
 | 
					 | 
				
			||||||
  - de fleste programmeringsspråk har sin egen major mode
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Minor modes
 | 
					  - Modes tilføyer ofte egne tastekombinasjoner!
 | 
				
			||||||
  - du kan ha så mange aktive minor modes du ønsker
 | 
					 | 
				
			||||||
  - en minor mode tilbyr tilleggsfunksjonalitet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- Modes tilføyer ofte egne tastekombinasjoner!
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Tips
 | 
					* Tips
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - 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:
 | 
				
			||||||
 | 
					    - 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»
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- i begynnelsen:
 | 
					  - etter hvert (for spesielt interesserte):
 | 
				
			||||||
  - les og gjør «learn-by-doing tutorial» (=C-h t=)
 | 
					    - skriv din egen config-fil
 | 
				
			||||||
  - tving deg selv til å bruke de kommandoene du lærer til de sitter i fingrene
 | 
					    - lær litt Emacs lisp, og skriv dine egne funksjoner
 | 
				
			||||||
  - unngå «pek og klikk»
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- etter hvert (for spesielt interesserte):
 | 
					  - gjør =CAPS-LOCK= om til en ekstra Control (=Ctrl=)
 | 
				
			||||||
  - 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=)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Terminologi for taster
 | 
					* Terminologi for taster
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					   - =C-<any>=
 | 
				
			||||||
 | 
					     Control
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-<any>=
 | 
					   - =M-<any>=
 | 
				
			||||||
  Control
 | 
					     Meta er =Alt= på de fleste maskiner (alternativt =ESC=)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-<any>=
 | 
					   - =<any>= betyr et vilkårlig tegn (eller tastekombinasjon)
 | 
				
			||||||
  Meta er =Alt= på de fleste maskiner (alternativt =ESC=)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- =<any>= betyr et vilkårlig tegn (eller tastekombinasjon)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Prefikstaster
 | 
					* Prefikstaster
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					   - =C-x <any>=
 | 
				
			||||||
 | 
					     prefiks for globale kommandoer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x <any>=
 | 
					   - =C-c <any>=
 | 
				
			||||||
  prefiks for globale kommandoer
 | 
					     prefiks for lokale kommandoer
 | 
				
			||||||
 | 
					     (har ikke alltid samme funksjon!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-c <any>=
 | 
					   - =C-h <any>=
 | 
				
			||||||
  prefiks for lokale kommandoer
 | 
					     prefiks for hjelp
 | 
				
			||||||
  (har ikke alltid samme funksjon!)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-h <any>=
 | 
					   - Alle tastekombinasjoner som ikke er en prefiks er enten bundet til en
 | 
				
			||||||
  prefiks for hjelp
 | 
					     kommando eller udefinert.
 | 
				
			||||||
 | 
					 | 
				
			||||||
- Alle tastekombinasjoner som ikke er en prefiks er enten bundet til en
 | 
					 | 
				
			||||||
  kommando eller udefinert.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Komme seg ut
 | 
					* Komme seg ut
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					   - =C-x C-c=
 | 
				
			||||||
 | 
					     avslutt Emacs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x C-c=
 | 
					   - =C-g=
 | 
				
			||||||
  avslutt Emacs
 | 
					     avbryt
 | 
				
			||||||
 | 
					     (bruk hvis du ikke skjønner hva Emacs holder på med!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-g=
 | 
					   - =ESC ESC ESC=
 | 
				
			||||||
  avbryt
 | 
					     (bruk hvis =C-g= ikke hjalp)
 | 
				
			||||||
  (bruk hvis du ikke skjønner hva Emacs holder på med!)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =ESC ESC ESC=
 | 
					   - =C-<prefix> C-g=
 | 
				
			||||||
  (bruk hvis =C-g= ikke hjalp)
 | 
					     er udefinert
 | 
				
			||||||
 | 
					     (Dvs. =C-g= kan brukes til å avbryte prefiks)
 | 
				
			||||||
- =C-<prefix> C-g=
 | 
					 | 
				
			||||||
  er udefinert
 | 
					 | 
				
			||||||
  (Dvs. =C-g= kan brukes til å avbryte prefiks)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Tekstredigering
 | 
					* Tekstredigering
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					   - =C-f=, =C-b=
 | 
				
			||||||
 | 
					     flytt markøren ett tegn frem/tilbake
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-f=, =C-b=
 | 
					   - =M-f=, =M-b=
 | 
				
			||||||
  flytt markøren ett tegn frem/tilbake
 | 
					     flytt markøren ett ord frem/tilbake
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-f=, =M-b=
 | 
					   - =C-a=, =C-e=
 | 
				
			||||||
  flytt markøren ett ord frem/tilbake
 | 
					     flytt markøren til begynnelsen/slutten av linja
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-a=, =C-e=
 | 
					   - =C-p=, =C-n=
 | 
				
			||||||
  flytt markøren til begynnelsen/slutten av linja
 | 
					     flytt markøren til forrige/neste linje
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-p=, =C-n=
 | 
					 | 
				
			||||||
  flytt markøren til forrige/neste linje
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Bla rundt
 | 
					* Bla rundt
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-v=, =M-v=
 | 
				
			||||||
 | 
					    scroll ned/opp en side
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-v=, =M-v=
 | 
					  - =M-<=, =M->=
 | 
				
			||||||
  scroll ned/opp en side
 | 
					    gå til begynnelsen/slutten av bufferet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-<=, =M->=
 | 
					  - =C-l=
 | 
				
			||||||
  gå til begynnelsen/slutten av bufferet
 | 
					    vis slik at markøren er i senter/toppen/bunnen
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-l=
 | 
					 | 
				
			||||||
  vis slik at markøren er i senter/toppen/bunnen
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Kill og yank
 | 
					* Kill og yank
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-w=
 | 
				
			||||||
 | 
					    kill, tilsvarer cut
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-w=
 | 
					  - =C-y=
 | 
				
			||||||
  kill, tilsvarer cut
 | 
					    yank, tilsvarer paste
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-y=
 | 
					  - =M-w=
 | 
				
			||||||
  yank, tilsvarer paste
 | 
					    lagre til kill-ring, tilsvarer copy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-w=
 | 
					  - =C-k=
 | 
				
			||||||
  lagre til kill-ring, tilsvarer copy
 | 
					    kill, drepe resten av en linje
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-k=
 | 
					  - =M-y=, må etterfølges av =C-y=
 | 
				
			||||||
  kill, drepe resten av en linje
 | 
					    yank-pop, går lenger tilbake på kill-ring
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =M-y=, må etterfølges av =C-y=
 | 
					 | 
				
			||||||
  yank-pop, går lenger tilbake på kill-ring
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Feiloppretting
 | 
					* Feiloppretting
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-d=, =M-d=
 | 
				
			||||||
 | 
					    fjern neste bokstav/ord
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-d=, =M-d=
 | 
					  - =C-_=, =C-/=, =C-x u=
 | 
				
			||||||
  fjern neste bokstav/ord
 | 
					    undo!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-_=, =C-/=, =C-x u=
 | 
					  - =C-t=, =M-t=
 | 
				
			||||||
  undo!
 | 
					    bytt om to bokstaver/ord
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-t=, =M-t=
 | 
					  - =C-x C-t=
 | 
				
			||||||
  bytt om to bokstaver/ord
 | 
					    bytt om to linjer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x C-t=
 | 
					  - =M-q=
 | 
				
			||||||
  bytt om to linjer
 | 
					    plasserer om tekst i en paragraf slik at linjene ikke overstiger 70 tegn (den ødelegger ikke syntaks i programmeringmodes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-q=
 | 
					  - =M-u=, =M-l=, =M-c=
 | 
				
			||||||
  plasserer om tekst i en paragraf slik at linjene ikke overstiger 70 tegn (den ødelegger ikke syntaks i programmeringmodes)
 | 
					    gjør neste ord til UPPERCASE/lowercase/Capital-Case
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =M-u=, =M-l=, =M-c=
 | 
					 | 
				
			||||||
  gjør neste ord til UPPERCASE/lowercase/Capital-Case
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Markering av tekst
 | 
					* Markering av tekst
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-SPC=
 | 
				
			||||||
 | 
					    markerer tekst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-SPC=
 | 
					  - =C-x h=
 | 
				
			||||||
  markerer tekst
 | 
					    markerer all tekst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x h=
 | 
					  - =M-h=
 | 
				
			||||||
  markerer all tekst
 | 
					    markerer en paragraf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-h=
 | 
					  - Bruk i kombinasjon med =M-w=, =C-w= og =TAB=
 | 
				
			||||||
  markerer en paragraf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- Bruk i kombinasjon med =M-w=, =C-w= og =TAB=
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Filer
 | 
					* Filer
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-x C-f=
 | 
				
			||||||
 | 
					    åpne fil
 | 
				
			||||||
 | 
					    (hvis den ikke finnes fra før åpnes et tomt buffer med det nye filnavnet)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x C-f=
 | 
					  - =C-x C-s=
 | 
				
			||||||
  åpne fil
 | 
					    lagre buffer
 | 
				
			||||||
  (hvis den ikke finnes fra før åpnes et tomt buffer med det nye filnavnet)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x C-s=
 | 
					  - =C-x C-w=
 | 
				
			||||||
  lagre buffer
 | 
					    skrive til fil (tilsvarende «lagre som...»)
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-x C-w=
 | 
					 | 
				
			||||||
  skrive til fil (tilsvarende «lagre som...»)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Vinduer
 | 
					* Vinduer
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-x 2=, =C-x 3=
 | 
				
			||||||
 | 
					    splitt et vindu horisontalt/vertikalt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x 2=, =C-x 3=
 | 
					  - =C-x 1=
 | 
				
			||||||
  splitt et vindu horisontalt/vertikalt
 | 
					    gjør det aktive vinduet til det eneste vinduet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x 1=
 | 
					  - =C-x 0=
 | 
				
			||||||
  gjør det aktive vinduet til det eneste vinduet
 | 
					    lukk det aktive vinduet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x 0=
 | 
					  - =C-x o=
 | 
				
			||||||
  lukk det aktive vinduet
 | 
					    bytt fokus til et annet vindu
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-x o=
 | 
					 | 
				
			||||||
  bytt fokus til et annet vindu
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Buffere
 | 
					* Buffere
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-x b RET=
 | 
				
			||||||
 | 
					    bytt buffer
 | 
				
			||||||
 | 
					    (siste besøkte buffer er default)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x b RET=
 | 
					  - =C-x k RET=
 | 
				
			||||||
  bytt buffer
 | 
					    drep (kill) buffer
 | 
				
			||||||
  (siste besøkte buffer er default)
 | 
					    (det aktive bufferet er default)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x k RET=
 | 
					  - =C-x left=, =C-x right=
 | 
				
			||||||
  drep (kill) buffer
 | 
					    en annen måte å bytter buffer på
 | 
				
			||||||
  (det aktive bufferet er default)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-x left=, =C-x right=
 | 
					 | 
				
			||||||
  en annen måte å bytter buffer på
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Kommandoer
 | 
					* Kommandoer
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =M-x function RET=
 | 
				
			||||||
 | 
					    lar deg kalle en vilkårlig kommando med navn
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-x function RET=
 | 
					  - =M-x replace-string RET erstatt RET med RET=
 | 
				
			||||||
  lar deg kalle en vilkårlig kommando med navn
 | 
					    tilsvarer «search and replace»
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-x replace-string RET erstatt RET med RET=
 | 
					  - =M-x query-replace RET erstatt RET med RET= ... =y/n=
 | 
				
			||||||
  tilsvarer «search and replace»
 | 
					    samme som replace-string, men du kan velge hva som skal erstattes (kan også kjøres med =M-%=!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-x query-replace RET erstatt RET med RET= ... =y/n=
 | 
					  - Bruk =TAB= for autocomplete!
 | 
				
			||||||
  samme som replace-string, men du kan velge hva som skal erstattes (kan også kjøres med =M-%=!)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- Bruk =TAB= for autocomplete!
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Søking
 | 
					* Søking
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-s=
 | 
				
			||||||
 | 
					    søk fremover i bufferet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-s=
 | 
					  - =C-r=
 | 
				
			||||||
  søk fremover i bufferet
 | 
					    søk bakover i bufferet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-r=
 | 
					  - Dette er en /svært/ effektiv måte å flytte markøren på!
 | 
				
			||||||
  søk bakover i bufferet
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- Dette er en /svært/ effektiv måte å flytte markøren på!
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Hjelp til selvhjelp
 | 
					* Hjelp til selvhjelp
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =C-h k=
 | 
				
			||||||
 | 
					    bruk hvis du lurer på hva en tastekombinasjon gjør
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-h k=
 | 
					  - =C-h f=
 | 
				
			||||||
  bruk hvis du lurer på hva en tastekombinasjon gjør
 | 
					    bruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjør
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-h f=
 | 
					  - =C-h m=
 | 
				
			||||||
  bruk hvis du kjenner navnet på en funksjon, men ikke vet hva den gjør
 | 
					    gir deg informasjon om moden du er i (bl.a. tastekombinasjoner som er spesielle for moden)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-h m=
 | 
					  - =C-h a=
 | 
				
			||||||
  gir deg informasjon om moden du er i (bl.a. tastekombinasjoner som er spesielle for moden)
 | 
					    apropos, lar deg søke i hjelpen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-h a=
 | 
					  - =C-h C-h= (eller: =C-h ?=)
 | 
				
			||||||
  apropos, lar deg søke i hjelpen
 | 
					    gir deg hjelp om hjelpen
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-h C-h= (eller: =C-h ?=)
 | 
					 | 
				
			||||||
  gir deg hjelp om hjelpen
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Programmering
 | 
					* Programmering
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - =TAB=
 | 
				
			||||||
 | 
					    indenterer riktig (dersom indenteringen er gal er det et tegn på at det er noe galt i koden!)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =TAB=
 | 
					  - =M-;=
 | 
				
			||||||
  indenterer riktig (dersom indenteringen er gal er det et tegn på at det er noe galt i koden!)
 | 
					    kommenterer ut et markert område
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-;=
 | 
					  - =M-x compile RET compile-command RET=
 | 
				
			||||||
  kommenterer ut et markert område
 | 
					    lar deg kompilere i Emacs
 | 
				
			||||||
 | 
					    (gir trykkbare linker til der feil oppstod)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-x compile RET compile-command RET=
 | 
					  - =M-g g <nr> RET=
 | 
				
			||||||
  lar deg kompilere i Emacs
 | 
					    flytter markøren til linjenummer =<nr>=
 | 
				
			||||||
  (gir trykkbare linker til der feil oppstod)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- =M-g g <nr> RET=
 | 
					 | 
				
			||||||
  flytter markøren til linjenummer =<nr>=
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Makroer
 | 
					* Makroer
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - Makroer er en måte å "ta opp" en rekke kommandoer på
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Makroer er en måte å "ta opp" en rekke kommandoer på
 | 
					  - =C-x (=
 | 
				
			||||||
 | 
					    definer en makro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x (=
 | 
					  - =<f3>=
 | 
				
			||||||
  definer en makro
 | 
					    definer en makro /eller/ sett inn løpenummer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =<f3>=
 | 
					  - =C-x )=, =<f4>=
 | 
				
			||||||
  definer en makro /eller/ sett inn løpenummer
 | 
					    ferdigstill makroen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =C-x )=, =<f4>=
 | 
					  - =C-x e=
 | 
				
			||||||
  ferdigstill makroen
 | 
					    utfør makroen
 | 
				
			||||||
 | 
					 | 
				
			||||||
- =C-x e=
 | 
					 | 
				
			||||||
  utfør makroen
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - =e=
 | 
					  - =e=
 | 
				
			||||||
    gjenta makroen
 | 
					    gjenta makroen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Pakker
 | 
					* Pakker
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					  - Emacs 24 kommer med innebygd pakkebehandler
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Emacs 24 kommer med innebygd pakkebehandler
 | 
					  - det finnes tusenvis av pakker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- det finnes tusenvis av pakker
 | 
					  - =M-x list-packages=
 | 
				
			||||||
 | 
					    bla gjennom pakker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- =M-x list-packages=
 | 
					    - =i= installere
 | 
				
			||||||
  bla gjennom pakker
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - =i= installere
 | 
					    - =U= oppgrader alle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - =U= oppgrader alle
 | 
					    - =d= slett
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - =d= slett
 | 
					    - =x= utfør installering/oppgradering/sletting
 | 
				
			||||||
 | 
					 | 
				
			||||||
  - =x= utfør installering/oppgradering/sletting
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Anbefalinger
 | 
					* Anbefalinger
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [[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]]
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
- [[http://termvakt.ifi.uio.no/Emacs][Termvaktens guide til Emacs]]
 | 
					  - [[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://termvakt.ifi.uio.no/Emacs][Termvaktens guide til Emacs]]
 | 
				
			||||||
- [[http://www.ic.unicamp.br/%7Ehelio/disciplinas/MC102/Emacs_Reference_Card.pdf][En cheat-sheet for Emacs]]
 | 
					  - [[http://www.masteringemacs.org/reading-guide/][En flott blogg om Emacs]]
 | 
				
			||||||
- [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]]
 | 
					  - [[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?
 | 
					* Spørsmål?
 | 
				
			||||||
 | 
					  #+ATTR_REVEAL: :frag roll-in
 | 
				
			||||||
- Noen spørsmål nå?
 | 
					  #+ATTR_HTML: :class build
 | 
				
			||||||
- Kom ned i pausen hvis dere har spørsmål eller ønske for neste time!
 | 
					  - Noen spørsmål nå?
 | 
				
			||||||
- Gjerne send mail til [[mailto:larstvei@ifi.uio.no][larstvei@ifi.uio.no]]!
 | 
					  - 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,8 +21,6 @@
 | 
				
			|||||||
| =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           |                                    |
 | 
				
			||||||
|---------------------+------------------------------------|
 | 
					|---------------------+------------------------------------|
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
   Kildekoden for alt materiale ligger på [[https://github.com/larstvei/emacskurs][GitHub]]. Her finner du:
 | 
					   Kildekoden for alt materiale ligger på [[https://github.com/larstvei/emacskurs][GitHub]]. Her finner du:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   - [[./foiler.html][Foiler]]
 | 
					   - [[./emacskurs.html][Foiler]]
 | 
				
			||||||
   - [[./emacs-init.el][Konfigurasjonsfil]]
 | 
					   - [[./emacs-init.el][Konfigurasjonsfil]]
 | 
				
			||||||
   - [[./handout.html][Handout]]
 | 
					   - [[./handout.html][Handout]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -149,11 +149,6 @@
 | 
				
			|||||||
    kan laste ned ~emacs-24.3-bin-i386.zip~, eller prøve en nyere hvis det
 | 
					    kan laste ned ~emacs-24.3-bin-i386.zip~, eller prøve en nyere hvis det
 | 
				
			||||||
    er tilgjengelig.
 | 
					    er tilgjengelig.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Extract mappen på et passende stad. Emacs er stand alone og trenger altså ikke å installeres.
 | 
					 | 
				
			||||||
    Emacs kjøres ved å dobbeltklikke på filen runemacs.exe som ligger i mappen "bin".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Emacs fungerer på akkurat samme måte, men alt fungerer bedre i Linux eller på Mac.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
** Konfigurere Emacs
 | 
					** Konfigurere Emacs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Her gang Emacs starter ser den etter en konfigurasjonsfil, den velger
 | 
					   Her gang Emacs starter ser den etter en konfigurasjonsfil, den velger
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user