GNU Emacs är en bra
texteditor. Det kan vara värt att gå igenom the Emacs
Tutorial
, som du kommer åt i Help
-menyn. I det
här dokumentet koncentrerar vi oss på olika inställningar som du kan
tänkas vilja göra (jämför till exempel figur 1 och
figur 2).
Emacs lagrar sina inställningar i filen .emacs i
hemkatalogen. För att se om du har en sådan, kan du köra kommandot
ls .emacs. Om du inte har det kan du — i alla fall om
du sitter vid Chalmers' datorer — kopiera in en sådan med
kommandot cp /etc/skel/.emacs ~/.emacs. Detta rekommenderas
starkt.
Texten fortsätter nedanför figurerna.

Figur 1: Emacs med font-lock-mode och
flyspell-mode, i full färd med att editera en
LaTeX-fil. Jämför med figur 2.

Figur 2: Emacs utan font-lock-mode och
utan flyspell-mode. Jämför med figur 1.
font-lock-modeDen kanske tydligaste skillnaden mellan figur 1
och figur 2 är närvaron respektive frånvaron av
font-lock-mode. Andra texteditorer använder ibland
begreppet syntax highlighting
för att beteckna samma
sak. Det innebär att texten färgläggs eller formateras beroende på vad
de olika tecknen har för betydelse: i figurer 1
och 2 ser vi hur kommandon får en färg,
matematiska uttryck får en annan färg, texten som kommer luta i
slutresultatet lutar även i källkoden, osv.
Vill du sätta på font-lock-mode för en viss fil kan du
skriva M-x font-lock-mode, där M-x innebär att
du ska hålla nere Meta-tangenten (förmodligen Alt-tangenten, om ditt
tangentbord saknar en riktig Meta) medan du trycker
x. Sedan är det bara att skriva in kommandot.
Vill man få font-lock-mode utan att man ber om det,
kan man lägga följande kodsnutt i sin .emacs-fil. Detta
är precis den kod som i skrivande stund ligger (tillsammans med
ytterligare några kodsnuttar) i filen
/etc/skel/.emacs.
;; turn on font-lock mode (when (fboundp 'global-font-lock-mode) (global-font-lock-mode t))
Förändringar i din .emacs-fil gäller från nästa gång
du startar Emacs.
flyspell-modeEn annan sak som du möjligen lagt märke till när du jämförde figur 1 och figur 2 är att ordet
MacReflex
är understruket och gulfärgat i figur
1. Detta är den automatiska stavningskontrollen.
För att sätta på stavningskontroll för ett konkret dokument, skriv
M-x flyspell-mode. Samma kommando stänger av
flyspell-mode. Du kan ställa in vilket språk den ska
använda vid kontrollen genom kommandot M-x
ispell-change-dictionary.
När flyspell-mode är aktiverat kontrolleras texten
löpande allteftersom du skriver. Om du öppnar en redan existerande
text, kan du begära stavningskontroll av alltihop med M-x
flyspell-buffer. Flyspell stryker under okända ord, och du kan
mittenklicka (klicka musknapp 2) på ett ord för att få upp olika
svarsalternativ. Om du föredrar att texten inte stryks under, men vill
ha stavningskontroll ändå, kan du använda kommandot M-x
ispell-buffer.
Om du alltid vill ha svensk stavningskontroll när du redigerar
textfiler (inklusive LaTeX-filer), kan du lägga följande i din
.emacs-fil. Dessa inställningar kommer inte att påverka
Emacs beteende när du redigerar programfiler.
(add-hook 'text-mode-hook '(lambda () (ispell-change-dictionary "svenska" nil))) (add-hook 'text-mode-hook '(lambda () (flyspell-mode nil)))
auto-fill-modeI både figur 1 och figur 2 är raderna brutna efter lämpligt antal tecken. Många nybörjare brukar dock inte bry sig om radbrytning, utan låta ett helt stycke stå på en och samma rad. Emacs kommer inte bryta upp ett stycke på flera rader, om du inte själv aktiverar automatisk radbrytning. Detta görs med kommandot M-x auto-fill-mode. Samma kommando igen stänger av radbrytning.
Den automatiska radbrytningen gäller bara det du skriver in i presens, inte det som eventuellt redan stod i filen du ändrar i. För att ändra radbrytningen i något visst stycke kan du ställa dig i det stycket och trycka M-q.
Om du alltid vill ha automatisk radbrytning när du redigerar
textfiler, kan du lägga följande rad i din
.emacs-fil.
(add-hook 'text-mode-hook 'turn-on-auto-fill)
Om man använder Emacs i Java-kursen så finns det en gyllene regel
att hålla sig till: använd mellanslag, inte tab, för
indentering. Detta fixas automatiskt genom att lägga följande kod i
din .emacs-fil:
(setq-default indent-tabs-mode nil)
Jag rekommenderar även följande, som ger lite snyggare indentering.
(c-set-offset (quote substatement-open) 0 nil)
Dessa rader är bra. Du vill ha dem.
Om du har utgått från /etc/skel/.emacs och följt
instruktionerna här, kommer din .emacs-fil (som ligger i
din hemkatalog) att se ut så här:
;; .emacs
;;; uncomment this line to disable loading of "default.el" at startup
;; (setq inhibit-default-init t)
;; turn on font-lock mode
(when (fboundp 'global-font-lock-mode)
(global-font-lock-mode t))
;; enable visual feedback on selections
;(setq transient-mark-mode t)
;; default to better frame titles
(setq frame-title-format
(concat "%b - emacs@" system-name))
(add-hook 'text-mode-hook '(lambda () (ispell-change-dictionary "svenska" nil)))
(add-hook 'text-mode-hook '(lambda () (flyspell-mode nil)))
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(setq-default indent-tabs-mode nil)
(c-set-offset (quote substatement-open) 0 nil)