;;;; -*- emacs-lisp -*- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Exempel på en .emacs av Kalle Svensson (kalle@lysator.liu.se). ;; ;; ;; ;; All kod här är fri att använda som du vill. Hoppas att du har någon ;; ;; nytta av den. Kontakta mig gärna om du har kommentarer. ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Den här raden gör att det går att skriva in svenska tecken till ;; emacs även om den körs i ett terminalfönster. (set-input-mode nil nil 07) ;; Se till att ha rätt teckentabell som standard. Latin-1 tillåter svenska ;; tecken att läsas och skrivas. Hoppar man över denna rad så kommer emacs ;; att varna när man sparar filen första gången. (set-language-environment "Latin-1") ;; Gör att både rad- och kolumnnummer visas i statusraden. (setq line-number-mode t) (setq column-number-mode t) ;; Visa klocka i statusraden. (setq display-time-24hr-format t) (display-time) ;; Bryt långa rader automatiskt i textläge. ;; ;; Det här är ett exempel på hur man använder en 'hook'. Många olika lägen ;; har så kallade hooks som är funktioner som körs vid bestämda tillfällen. ;; Med hjälp av funktionen add-hook kan man lägga till funktioner som ska ;; köras av hooken. I det här fallet vill vi att turn-on-auto-fill ska köras ;; varje gång vi går in textläge. ;; Hooks är ett vanligt sätt att påverka beteendet hos olika emacs-lägen. (add-hook 'text-mode-hook 'turn-on-auto-fill) ;; Använd färger för att visa programstruktur. (global-font-lock-mode t) (setq font-lock-maximum-decoration t) ;; Ställ in så att emacs visar vilket område som är markerat. ;; Detta gör också att somliga kommandon som i vanliga fall markerar text ;; inte gör det. Det kan leda till färre problem med att man kommer åt ;; C-w när man menade C-e. (transient-mark-mode t) ;; Få emacs att visa vilka parenteser som hör ihop. (show-paren-mode t) ;; Binder Shift+Tab till ordkomplettering. Det är en jättesmart ;; funktion i emacs som alltför få känner till. (global-set-key [S-iso-lefttab] 'dabbrev-completion) ;; Några Windows-liknande tangentbindningar. (global-set-key [home] 'beginning-of-line) (global-set-key [end] 'end-of-line) (global-set-key [delete] 'delete-char) (global-set-key [C-home] 'beginning-of-buffer) (global-set-key [C-end] 'end-of-buffer) ;; Starta en server som kan användas av emacsclient. ;; Kör "emacsclient fil" för att redigera en fil i den redan startade emacsen. (server-start) ;; Slutligen kan det vara roligt med några färginställningar. ;; Först definierar vi några variabler. Om man vill ändra färgerna ;; räcker det oftast att ändra värden på variablerna. ; Bakgrundsfärg. (defvar *bgcolor* "black") ; Förgrundsfärg. Bör vara ganska olik bakgrundsfärgen. (defvar *fgcolor* "wheat") ; Markerad text. Bör vara lite mörkare eller ljusare än bakgrunden (defvar *mark* "rgb:50/50/50") ; Färg för kommentarer i kod. (defvar *comment* "aquamarine") ; Färg för konstanter i kod. (defvar *constant* "red") ; Färg för strängar i kod. (defvar *string* "gold") ;; Koden nedan behöver du oftast inte ändra i, men titta gärna på hur ;; den ser ut. ; Standardfärger. (set-background-color *bgcolor*) (set-cursor-color *fgcolor*) (set-foreground-color *fgcolor*) (set-face-background 'default *bgcolor*) (set-face-foreground 'default *fgcolor*) ; Ändra färgen på statusraden till inversen av standardfärgerna. (set-face-foreground 'modeline *bgcolor*) (set-face-background 'modeline *fgcolor*) ; Markerad text. (set-face-background 'region *mark*) ;; För färgläggning av kod har vi några småändringar. (set-face-foreground 'font-lock-builtin-face *fgcolor*) (set-face-background 'font-lock-builtin-face *bgcolor*) ; Kommentarer (set-face-foreground 'font-lock-comment-face *comment*) ; Konstanter (set-face-foreground 'font-lock-constant-face *constant*) ; Strängar (set-face-foreground 'font-lock-string-face *string*) ;; Några saker kan vara i fetstil också. ; Funktionsnamn (make-face-bold 'font-lock-function-name-face) ; Nyckelord, reserverade ord (make-face-bold 'font-lock-keyword-face) ; Typer etc, hit tillkommer också klasser i java. (make-face-bold 'font-lock-type-face) ; Varningstext (make-face-bold 'font-lock-warning-face)