[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!]