emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Customizable modes and package.el


From: Drew Adams
Subject: RE: Customizable modes and package.el
Date: Sat, 7 Nov 2015 20:33:29 -0800 (PST)

> I also concur that emacs should not try to modify the user's init file.

+1.

Customize can modify `custom-file'.  `bookmark.el' can modify
a user's bookmarks file(s).  `desktop.el' can modify a user's
desktop file(s).  `package.el' can modify package-related files...

But programmatic changes should not diddle with a user's init file.

The way things are now (still), such diddling is the default
behavior for Customize.  Shame.

To prevent this, a user needs to create and load a `custom-file'.

And s?he won't even find out about this possibility without
diving into the depths of the Customize section of the Emacs
manual.  Looking at node `Init File' won't give a clue about
this safer and more sane possibility.

My guess is that relatively few Emacs users have a `custom-file'.
Most just let Customize write to their init files (if they use
Customize at all).  That's not good.

Imagine if `bookmark.el', `desktop.el', and all the rest
wrote all of their Lisp code directly to a users init file!
It's high time that Customize learned to behave the same way.

Yes, this would mean that users would need to load their
`custom-file' somewhere in their init file.  And yes, just
where they choose to do that in the init file can make a
difference.  And yes, there are different use cases - it
is not as simple as always loading it first or last.

A start would be for the manual to encourage using a
`custom-file', in its discussion of init files.  And it
wouldn't hurt to include a simple example of defining it
and loading it in an init file.  A user doesn't have to
be an expert in all the intricacies of Customize to learn
how to define and load a `custom-file'.

[There should also perhaps be some mention of the possibly
confusing fact that `custom-file' is itself a user option,
i.e., something managed by Customize!  Clearly it is a
special option, in that you cannot depend on it becoming
properly defined by loading the file that defines it!]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]