Revisions for EmacsTips

changed:
-
<h1>Tips om effektiv bruk av GNU Emacs</h1>

Her vil du finne noen nyttige tips om hvordan du kan bruke Emacs mer
effektivt.  Dette dokumentet er ikke ment som et innføringskurs i
Emacs.

<h2>Om GNU Emacs</h2>

GNU Emacs (heretter bare kalt Emacs) er kanskje verdens mest fleksible
teksteditor.  Den er beskrevet som en «extensible, customizable,
self-documenting real-time display editor».  Den har blitt utviklet
siden åttitallet av Richard Stallman i GNU-prosjektet.

Mange av Emacs' mest nyttige egenskaper er skjult bak tilsynelatende
obskure tastekombinasjoner eller kommandoer.  Om man imidlertid lærer
seg disse, vil man oppdage at de er intuitive, enkle å huske, og gjør
at du jobber raskere og er mer produktiv.

<h2>Konvensjoner</h2>

Når vi beskriver tastekombinasjoner i dette dokumentet, bruker vi
den notasjonen som er standard i Emacs.  Denne beskrives best med
eksempler:

- 'C-x' betyr at du skal holde nede Ctrl-tasten, trykke x, så slippe
  begge tastene.

- 'M-x' betyr at du holde nede Meta-tasten (som er det samme som
  Alt-tasten på PC-ene våre), trykke x, så slippe begge tastene.

- 'C-x u' betyr at du skal holde nede Ctrl-tasten, trykke x, slippe
  begge tastene, og så trykke u.

- 'C-x C-u' overlates som en øvelse til leseren.


<h2>Elementære tastekombinasjoner</h2>

Mange nybegynnere gjør seg avhengige av Emacs sine menyer og
verktøylinjer.  Dette er svært lite effektivt, ettersom man hele tiden
må bevege seg mellom tastatur og mus.  Om man vil jobbe raskere og
unngå musesyken, anbefales du å lære deg følgende tastekombinasjoner:


<h3>Filbehandling</h3>

Noe av det mest grunnleggende man må lære seg, er hvordan man åpner
filer og lagrer dem.

+-----------+-----------------------------------------------------------------+
|Tast       | Beskrivelse                                                     |
+===========+=================================================================+
| C-x C-f   | Åpne eller opprette en fil.  Oppgi filnavnet i prompten nederst |
|           | i Emacs-vinduet.  Husk at du kan bruke TAB for å komplettere.   |
+-----------+-----------------------------------------------------------------+
| C-x C-s   | Lagre bufferet du jobber mot til filnavnet du har gitt den      |
+-----------+-----------------------------------------------------------------+
| C-x C-w   | Lagre som ...                                                   |
+-----------+-----------------------------------------------------------------+


<h3>Bruk av buffers</h3>

Emacs kan ha mange filer åpne samtidig.  Hver fil lastes inn i et
<i>buffer</i>, som er det du jobber mot i Emacs.  Du kan skifte mellom bufrene
enkelt:

+-----------+-----------------------------------------------------------------+
|Tast       | Beskrivelse                                                     |
+===========+=================================================================+
| C-x b     | Skift til et annet buffer.  Tast Enter for default.             |
+-----------+-----------------------------------------------------------------+
| C-x C-b   | Viser liste over åpne buffers.  Velg et med tastene eller mus.  |
+-----------+-----------------------------------------------------------------+
| C-x k     | Lukk et buffer (Enter for default) (k = «kill»)                 |
+-----------+-----------------------------------------------------------------+
| C-x 2     | Deler det aktive vinduet horisontalt i to, med ett              |
|           | buffer i hver del                                               |
+-----------+-----------------------------------------------------------------+
| C-x 3     | Deler det aktive vinduet vertikalt i to                         |
+-----------+-----------------------------------------------------------------+
| C-x 1     | Gjør det aktive vinduet til det eneste synlige                  |
+-----------+-----------------------------------------------------------------+
| C-x 0     | Gjør det «andre» vinduet til det eneste synlige                 |
+-----------+-----------------------------------------------------------------+
| C-x o     | Flytt markøren til det «andre» vinduet (o = other)              |
+-----------+-----------------------------------------------------------------+

Merk bruken av begrepet «vindu».  Dette må ikke blandes med det vi
normalt kaller for vinduer i et grafisk skrivebordsmiljø.  Emacs
består internt av det vi nå kaller vinduer (som noen kanskje best
kjenner som frames eller rammer).  Når du først åpner Emacs,
er kun ett vindu åpent, men om du vil jobbe effektivt på flere filer
samtidig, kan du splitte Emacs inn i mange vinduer som hver inneholder
et buffer.


<h3>Manøvrering i teksten</h3>

Man kan bruke piltastene og taster som Home, End, Page Up og Page Down
for å bevege seg i teksten.  Om man imidlertid vil bevege hendene enda
mindre bort fra hoveddelen av tastaturet, er disse tastene fine:

+-----------+-----------------------------------------------------------------+
|Tast       | Beskrivelse                                                     |
+===========+=================================================================+
| C-a       | Går til begynnelsen av linjen                                   |
+-----------+-----------------------------------------------------------------+
| C-e       | Går til slutten av linjen                                       |
+-----------+-----------------------------------------------------------------+
| C-n       | Går til neste linje (n står for «next»)                         |
+-----------+-----------------------------------------------------------------+
| C-p       | Går til forrige linje (p står for «previous»)                   |
+-----------+-----------------------------------------------------------------+
| C-b       | Går ett tegn tilbake (mot venstre) (b står for «back»)          |
+-----------+-----------------------------------------------------------------+
| C-f       | Går ett tegn fremover (mot høyre) (f står for «forward»)        |
+-----------+-----------------------------------------------------------------+


<h3>Enkel tekstmanipulering</h3>

Bruk ikke musen til klipp- og lim-operasjoner!

+-----------+-----------------------------------------------------------------+
|Tast       | Beskrivelse                                                     |
+===========+=================================================================+
| C-k       | Sletter resten av linjen (nyttig sammen med C-a                 |
+-----------+-----------------------------------------------------------------+
| C-space   | Setter «punktet», dvs. starten på en tekstmarkering             |
+-----------+-----------------------------------------------------------------+
| C-x h     | Markerer hele bufferet                                          |
+-----------+-----------------------------------------------------------------+
| M-w       | Kopierer tekst («Copy»-delen av en «Copy & Paste»               |
+-----------+-----------------------------------------------------------------+
| C-w       | Klipper ut tekst («Cut»-delen av en «Cut & Paste»               |
+-----------+-----------------------------------------------------------------+
| C-y       | Lim inn («Paste»)                                               |
+-----------+-----------------------------------------------------------------+
| M-y       | Erstatt det du nettopp limte inn med det forrige du kopierte.   |
|           | Kan brukes gjentatte ganger for å gå bakover i «kopi-køen».     |
+-----------+-----------------------------------------------------------------+



<h2>Tastekombinasjoner for Java</h2>

Emacs inneholder faktisk et komplett utviklingsmiljø for Java (JDEE).
Dette kan brukes til avansert navigering i koden på tvers av klasser
og pakker, debugging, kodekomplettering osv.  Det skal imidlertid ikke
mye til for å få enkel nytte av JDEE.  Her vil du lære hvordan du kan
kompilere og kjøre Java-kode fra Emacs, slik at du slipper å hoppe
mellom Emacs- og terminal-vinduer.

+------------+-----------------------------------------------------------------+
|Tast        | Beskrivelse                                                     |
+============+=================================================================+
| C-c C-v C-c| Kompilerer Java-koden du har oppe, og avhengige klasser         |
+------------+-----------------------------------------------------------------+
| C-c C-v C-r| Kjører Java-koden du har oppe (må inneholde main-metode)        |
+------------+-----------------------------------------------------------------+
| C-c C-v C-l| Setter inn en 'System.out.println(...)'-linje                   |
+------------+-----------------------------------------------------------------+
| C-c C-v C-x| Vis kildekoden til denne klassens superklasse                   |
+------------+-----------------------------------------------------------------+
| C-c C-v C-z| Sett inn en import-setning                                      |
+------------+-----------------------------------------------------------------+
| C-c C-v C-s| Åpner Speedbar, som lar deg navigere kildefiler                 |
+------------+-----------------------------------------------------------------+
| C-c C-v X-f| Lar deg søke etter innhold i kildefiler                         |
+------------+-----------------------------------------------------------------+


<h2>Emacs sitt hjelpesystem</h2>

Du kan lære deg alt som er å kunne om Emacs med det innebygde
hjelpesystemet.  Her er noen hint:

+------------+-----------------------------------------------------------------+
|Tast        | Beskrivelse                                                     |
+============+=================================================================+
| C-h t      | Åpner en svært nyttig tutorial (kurs) for å lære Emacs          |
|            | fra bunnen av.                                                  |
+------------+-----------------------------------------------------------------+
| C-h k      | Lurer du på hva en tastekombinasjon gjør?  Med denne kommandoen |
|            | oppgir du kombinasjonen du lurer på, og får svaret.             |
+------------+-----------------------------------------------------------------+
| C-h a      | Apropos.  En slags søkemotor mot hjelpesystemet.                |
+------------+-----------------------------------------------------------------+
| C-h f      | For de litt viderekommende:  Slår opp hva en gitt               |
|            | funksjon gjør.                                                  |
+------------+-----------------------------------------------------------------+
| C-h v      | Slår opp hva en gitt variabel i Emacs Lisp gjør for noe.        |
+------------+-----------------------------------------------------------------+
| C-h b      | Viser samtlige tastekombinasjoner.  Imponér alle                |
|            | vennene dine!                                                   |
+------------+-----------------------------------------------------------------+


<h2>Funksjoner</h2>

Emacs er i stor grad skrevet i en Lisp-dialekt som heter Emacs Lisp
eller elisp.  Det samme språket brukes for å utvide Emacs med ny
funksjonalitet.  Et resultat av dette er at Emacs kan gjøre nesten hva
som helst.  Bruk tasten 'M-x' for å oppgi et funksjonsnavn du vil
kjøre.  'C-h f' og 'C-h a' er nyttig for å oppdage hvilke funksjoner
som finnes.  Du kan også binde egne tastekombinasjoner til hvilke som helst
funksjoner, men det skal vi ikke dekke her.

<h3>Noen nyttige funksjoner</h3>

+---------------------------------------------------------------------------------+
|Navn           | Beskrivelse                                                     |
+===============+=================================================================+
|fill-region    | Når man skriver tekst, vil denne funksjonen (som jobber         |
|               | mot markert tekst), omorganisere på teksten slik at             |
|               | avsnittene blir pene.                                           |
+---------------+-----------------------------------------------------------------+
|revert-buffer  | Laster filen i bufferet på nytt.  Nyttig om filen er            |
|               | endret utenfra.                                                 |
+---------------+-----------------------------------------------------------------+
|indent-region  | Indenterer markert programkode (veldig nyttig i Java)           |
+---------------+-----------------------------------------------------------------+

<h2>.emacs</h2>

.emacs er en fil du har i hjemmekatalogen din som Emacs laster ved
oppstart.  Her kan du konfigurere Emacs til å være akkurat slik du vil
ha den, men dette krever en viss forståelse av elisp.

<h3>Nyttige ting å ha i .emacs</h3>

+-------------------------------------------------------------------------------------------------------------------+
|Syntax                                                       | Beskrivelse                                         |
+=============================================================+=====================================================+
| ;; eller ;                                                  | kommentarer i LISP (.emacs)                         |
+-------------------------------------------------------------+-----------------------------------------------------+
|(global-font-lock-mode t)                                    | Aktiverer farge på programmeringsskriften.          |
+-------------------------------------------------------------+-----------------------------------------------------+
|(setq scroll-step <FONT COLOR="red">antall linjer</FONT>)    | Scroll'er et gitt antall linjer, ved pil opp eller  |
|                                                             | pil ned.                                            |
|                                                             | Eks. **(setq scroll-step 3)** Scroll'er 3 linjer    |
+-------------------------------------------------------------+-----------------------------------------------------+
|(set-background-color "<FONT COLOR="red">farge</FONT>")      | Setter bakgrunnsfargen til gitt farge               |
|                                                             | Eks.  **(set-background-color "darkgrey")** setter  |
|                                                             | fargen til mørkegrå                                 | 
+-------------------------------------------------------------+-----------------------------------------------------+                                          
|(show-paren-mode t)                                          | Slår på "parentes-tydeliggjøring".                  |
+-------------------------------------------------------------+-----------------------------------------------------+
|(delete-selection-mode t)                                    | Fjerner all tekst som er merket, med backspace.     |
+-------------------------------------------------------------+-----------------------------------------------------+
|(global-set-key ![delete] 'delete-char)                      |Får delete til å oppføre seg som **del** og ikke som | 
|                                                             |**backspace** slik den vanligvis gjør.               |
+-------------------------------------------------------------+-----------------------------------------------------+
|(setq next-line-add-newlines nil)                            |Slutt å lage 'white space' med nedpilen.             |
+-------------------------------------------------------------+-----------------------------------------------------+
|(setq make-backup-files nil)<br>                             |Slutt å lage backup filer.                           | 
|(setq auto-save-default nil)                                 |(Tenk deg om før du implementerer denne)             |
+-------------------------------------------------------------------------------------------------------------------+

<h2>Litt mer avansert syntaks til .emacs</h2>

<h3>Lag ditt eget fontlock-oppsett</h3>

Det som er bra med dette er at du kan lage ditt eget oppsett
på hvordan programmeringspråk skal bli vist i emacs.
Dette vil si at du kan forandre både font og farge på forskjellige 
programmeringssyntakser. Men for å bruke dette må du huske å skrive
**(global-font-lock-mode t)** inn i .emacs før du begynner på det 
som kommer under.<br> 
Lykke til.<br> 

Dette er lettest å vise med eksempler:

<FONT COLOR="red">(</FONT>**let (new-face)**<br>
  **(setq new-face (copy-face 'bold 'blue))**<br>
  **(set-face-foreground new-face "blue")**<br>

  **(setq new-face (copy-face 'bold 'white))**<br>
  **(set-face-foreground new-face "white")**<br>

   *<br>
   *<br>

   *<br>
   *<br>
   
   OSV<br>

  <FONT COLOR="blue">(</FONT>**setq**<br>
  **font-lock-keyword-face 'blue**<br>
  **font-lock-variable-name-face 'white**<br>
   *<br>
   *<br>
   OSV<br>
  <FONT COLOR="blue">)</FONT><br>
<FONT COLOR="red">)</FONT><br>

Både 'bold og 'blue i **(setq new-face (copy-face 'bold 'blue))**
er fonter og farger som ligger
i fontlock-pakken. Man kunne derfor ha byttet dem ut
med 'italic og 'black **(setq new-face (copy-face 'italic 'black))**. 
Det vil også fungerer.

"blue" i **(set-face-foreground new-face "blue")**<br> er navnet på
den nye fonten man har spesifisert.

'blue i **font-lock-keyword-face 'blue** er en anvendelse av fonten
spesifisert i<br> 
**(setq new-face (copy-face 'bold 'blue))**<br>
**(set-face-foreground new-face "blue")**<br>.

Her er en liste med alle fargene du kan bruke http://www.geocities.com/kensanata/colors.html

Her er en liste med en del programmeringsord man kan fargelegge:<br>
**font-lock-function-name-face**<br>
**font-lock-keyword-face**<br>   
**font-lock-comment-face**<br>
**font-lock-preprocessor-face**<br>
**font-lock-string-face**<br>     
**font-lock-type-face**<br>      
**font-lock-variable-name-face**<br>
**font-lock-reference-face**<br>

<h2>Bruk av rullehjul i Emacs</h2>

Skriv det følgenede inn i .emacs-filen din:

**(mouse-wheel-mode 't)**

Du skal nå kunne bruke musen sitt rullehjul til å scrolle med.  Dersom det likevel ikke fungerer,
kan du prøve med følgende i .emacs istedet:

**(setq load-path (cons "**<FONT COLOR="red">stien til filen mwheel.el</FONT>**" load-path))**<br>
**(load-library "mwheel")**<br>

Her er linken til filen du trenger som inneholder <FONT COLOR="red">mwheel.el</FONT><br>
Hold inne shift og trykk med venstre museknapp 
på linken http://membled.com/lib/emacs/mwheel.el

<h2>Matlab-programmeringspakken</h2>

Skriv det følgenede inn i .emacs-filen din:

**(autoload 'matlab-mode "**<FONT COLOR="red">stien til filen matlab.el</FONT>**" "Enter Matlab mode." t)**<br>
**(setq auto-mode-alist (cons '("\\.m\\'" . matlab-mode) auto-mode-alist))**<br>
**(autoload 'matlab-shell "**<FONT COLOR="red">stien til filen matlab.el</FONT>**" "Interactive Matlab mode." t)**<br>

Her er linken til filen du trenger som inneholder <FONT COLOR="red">matlab.el</FONT><br>
Hold inne shift og trykk med venstre museknapp 
http://www.andrew.cmu.edu/course/16-720/extras/matlab_in_emacs/matlab.el


Fyll gjerne inn mer.


From unknown Mon Dec 8 20:22:43 +0100 2003
From: 
Date: Mon, 08 Dec 2003 20:22:43 +0100
Subject: Bli kvitt pipingen
Message-ID: <20031208202243+0100@doc.ii.uib.no>

Skriv følgende i ~/.emacs :
(setq ring-bell-function 'ignore)


<h2>JDEE (Java Development Enviroment for Emacs</h2>
For å initialisere JDEE med emacs legges følgende linjer til i din emacs fil:<br><br>


(add-to-list 'load-path (expand-file-name "/net/sstud/share/elisp/jde/lisp"))<br>
(add-to-list 'load-path (expand-file-name "/net/sstud/share/elisp/semantic"))<br>
(add-to-list 'load-path (expand-file-name "/net/sstud/share/elisp/speedbar"))<br>
(add-to-list 'load-path (expand-file-name "/net/sstud/share/elisp/elib"))<br>
(add-to-list 'load-path (expand-file-name "/net/sstud/share/elisp/eieio"))<br>
(require 'jde)<br>



From dokumentasjon Sun Feb 8 14:06:46 +0100 2004
From: dokumentasjon
Date: Sun, 08 Feb 2004 14:06:46 +0100
Subject: emacs -nw
Message-ID: <20040208140646+0100@doc.uib.no>

Er meget nyttig i terminalvindu ..