sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #98511
Re: Re: tabs/spaces baseret på filtype i emacs
Mads Jensen <madsj@xxxxxxxxx>, 2009-06-17 12:55 (+0200):
> Jeg tror du skal bruge noget ala:
>
> (add-hook 'mode-hook '(lambda ()
> (setq tab-width 4)))
Där "mode-hook" alltså skall bytas ut till den hook som just den här
moden har.
Om man skall sätta många saker kan det kanske vara snyggare att ha en
namngiven funktion i stället för en lambda-funktion:
----------------- 8< -----------------
(defun my-mode-settings ()
"Set stuff for my mode."
(setq tab-width 4
indent-tabs-mode t))
(add-hook 'my-mode-hook 'my-mode-settings)
----------------- 8< -----------------
Anledningen till att det där behövs är att både variabeln tab-width och
indent-tabs-mode blir automagiskt bufferlokala när de sätts. Se själv i
hjälptexten med C-h v. Alltså kan man inte sätta dem i sin .emacs eller
motsvarande.
Observera att tab-width bara påverkar hur ett TAB-tecken visas. Om
indenteringen i en viss mode ibland görs med mellanslag i stället så
kommer inte det att påverkas. Många modes blandar ju friskt mellan
mellanslag och TAB-tecken, irriterande nog.
Personligen föredrar jag att låta tab-width vara ifred och alltid se
TAB-tecken som 8 mellanslag. Sedan sätter jag min indentering att alltid
göras med mellanslag i stället.
Jag kommer tyvärr just inte på något enkelt sätt att tvinga fram att
*enbart* TAB-tecken skall användas som indentering. Det går dock, som
jag skrev förut, att använda C-q TAB hela tiden för att alltid skjuta in
just TAB-tecken.
Det kanske i modens kod går att hitta någon variabel som sätter just
indenteringen och sätta den i stället för tab-width? Då kan Atte
dessutom sätta om indent-tabs-mode till nil och alltid ha mellanslag som
indentering i stället och låta en TAB alltid vara 8, som gudinnan
menade att världen skulle vara fallen... *flin*
--
M.C. Widerkrantz, http://hack.org/mc/
Plain text e-mail, please. OpenPGP welcome.
Follow ups
References