From: "Jeff Dwork" <jeff.dwork@amd.com>
Cc: eddy@opera.no, emacs-devel@gnu.org
Subject: Re: customize
Date: Fri, 2 Aug 2002 17:46:44 -0700 [thread overview]
Message-ID: <15691.10228.135288.202730@localhost.localdomain> (raw)
In-Reply-To: <200207300100.g6U100I14581@aztec.santafe.edu>
Here is an example of my problem with customize writing to .emacs
file. I use 19.34 and I'm transitioning to 21. Many things I do in
my version 19 .emacs are done differently in version 21, so I don't
want 21 to see my 19 stuff and my 19 stuff may not understand my
version 21 stuff. So I tested the version in .emacs.
This is:
GNU Emacs 21.1.1 (i686-pc-linux-gnu, X toolkit) of 2002-02-19 on
go002
All invocations are:
emacs --no-site-file
I start with this in .emacs:
********************************************
(if (< emacs-major-version 21)
(progn
; here we set load-path for emacs 19
; this is just a dummy for test
(setq jrd-init-var "19")
(setq jrd-init-var2 "xx")
)
; here we set load-path for emacs 21 and later
; this is just a dummy for test
(setq jrd-init-var "21")
(setq jrd-init-var2 "yy")
)
********************************************
I start emacs 21, customize a variable and save it for the future.
I now have this:
********************************************
(if (< emacs-major-version 21)
(progn
; here we set load-path for emacs 19
; this is just a dummy for test
(setq jrd-init-var "19")
(setq jrd-init-var2 "xx")
)
; here we set load-path for emacs 21 and later
; this is just a dummy for test
(setq jrd-init-var "21")
(setq jrd-init-var2 "yy")
)
(custom-set-variables
;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
'(confirm-kill-emacs (quote y-or-n-p)))
(custom-set-faces
;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
)
********************************************
But this won't work because the custom-set-variables is outside the
if. I could write some code to make emacs 19 ignore this function,
but I don't want to. So I move custom-set-* inside the if.
********************************************
(if (< emacs-major-version 21)
(progn
; here we set load-path for emacs 19
; this is just a dummy for test
(setq jrd-init-var "19")
(setq jrd-init-var2 "xx")
)
; here we set load-path for emacs 21 and later
; this is just a dummy for test
(setq jrd-init-var "21")
; move custom stuff so only emacs 21 sees it
(custom-set-variables
;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
'(confirm-kill-emacs (quote y-or-n-p)))
(custom-set-faces
;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
)
(setq jrd-init-var2 "yy")
)
********************************************
I run emacs 21 again and customize another variable and I get this:
********************************************
(if (< emacs-major-version 21)
(progn
; here we set load-path for emacs 19
; this is just a dummy for test
(setq jrd-init-var "19")
(setq jrd-init-var2 "xx")
)
; here we set load-path for emacs 21 and later
; this is just a dummy for test
(setq jrd-init-var "21")
; move custom stuff so only emacs 21 sees it
(custom-set-variables
;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
'(confirm-kill-emacs (quote y-or-n-p)))
(custom-set-faces
;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
)
(setq jrd-init-var2 "yy")
)
(custom-set-variables
;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
'(confirm-kill-emacs (quote y-or-n-p))
'(partial-completion-mode t nil (complete)))
(custom-set-faces
;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
;; Your init file should contain only one such instance.
)
********************************************
Now we have two instances of custom-set-variables, which is not good.
If I leave the custom-set stuff where emacs 21 wrote it the first
time, I can add code after it and emacs will find what it wrote and
modify it correctly, although Eddy seems to have found problems with
this. I only did a simple test.
In any case, this is all fixed by customizing custom-file. Then
customize modifies a file that contains only code written by customize
and I can load custom-file from my .emacs however I want.
As long as custom-file has reasonably prominent mention in the initial
customize buffer, I don't think it is necessary to change the
default.
Thanks for all your good works,
Jeff
Richard Stallman writes:
> To: eddy@opera.no
> cc: jeff.dwork@amd.com, emacs-devel@gnu.org
> Subject: Re: customize
> Date: Mon, 29 Jul 2002 19:00:00 -0600 (MDT)
>
> > I documented custom-face, but I don't see a reason to change the
> > default to use a different file.
>
> Jeff was discussing customisation of custom-file, not custom-face.
>
> It was custom-file that I documented. I wrote the wrong name in the
> message.
>
> * Database reason: one file then contains only customize's actions,
> making it much easier to keep track of which pieces of one's
> config come from where.
>
> It is easy enough to distinguish--the stuff written by Customize
> is compact, distinctive, and clearly labeled.
>
> * Priority/ordering reason: customize adds things to the end of its
> file: this is sensible for it, but potentially bad for elisp which
> needs to be executed after customizations; using a separate file
> for customize lets my ~/.emacs load the customize part early, late
> or in between, at my option, rather than having it always be last.
>
> There appears to be some controversy about whether this is really true.
> Part of the controversy may be that your description of the problem
> is heavy on emotions and the facts are not clear.
>
> > After it is there, you can add stuff in ~/.emacs after it.
> and get a layer-cake of intermingled fragments, some of one's own
> construction, others added by customize
>
> Could you show an example of this? As far as I know, customize writes
> all its definitions for variables in a single sexp, and all its specs
> for faces in a single sexp, and this can't produce very many layers.
>
> If you show me what the problem looks like, maybe I can change Customize
> to edit the file in a way that is more convenient.
>
> * Byte-compilation: putting it all in a separate .el file provides
> for the possibility of byte-compiling the customization elisp.
>
> You can byte-compile .emacs, so is this really an advantage?
--
Jeff Dwork | jeff.dwork@amd.com
Advanced Micro Devices, M/S 45 | 408-749-5216 (voice) 408-774-8448 (fax)
PO Box 3453 |----------------------------------------
Sunnyvale, Ca 94088-3453 |
next prev parent reply other threads:[~2002-08-03 0:46 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-10 16:51 customize Edward Welbourne
2002-07-11 12:01 ` customize Richard Stallman
2002-07-11 16:29 ` customize Edward Welbourne
2002-07-14 15:22 ` customize Richard Stallman
2002-07-15 9:18 ` customize Edward Welbourne
2002-07-15 14:08 ` customize Stefan Monnier
2002-07-15 15:36 ` customize Edward Welbourne
2002-07-16 13:28 ` customize Richard Stallman
2002-07-25 21:02 ` customize Jeff Dwork
2002-07-27 18:53 ` customize Richard Stallman
2002-07-29 11:17 ` customize Edward Welbourne
2002-07-29 12:49 ` customize Kai Großjohann
2002-07-29 13:50 ` customize Edward Welbourne
2002-07-29 15:22 ` customize chad
2002-08-05 17:47 ` customize Per Abrahamsen
2002-08-06 16:53 ` customize chad
2002-08-09 6:52 ` customize Stefan Monnier
2002-08-09 8:32 ` customize Edward Welbourne
2002-08-10 12:30 ` customize Stefan Monnier
2002-08-12 8:00 ` customize, futility of byte-compiling Edward Welbourne
2002-08-12 10:01 ` Per Abrahamsen
2002-08-12 16:14 ` Stefan Monnier
2002-08-10 17:16 ` customize Richard Stallman
2002-08-13 16:28 ` customize Stefan Monnier
2002-08-14 5:15 ` customize Richard Stallman
2002-08-14 21:51 ` customize Stefan Monnier
2002-07-29 16:15 ` customize Per Abrahamsen
2002-07-29 18:15 ` customize Edward Welbourne
2002-07-29 19:42 ` customize Kai Großjohann
2002-07-30 8:32 ` customize Edward Welbourne
2002-07-30 11:32 ` customize Robert J. Chassell
2002-07-30 5:16 ` customize Eli Zaretskii
2002-07-30 5:14 ` customize Eli Zaretskii
2002-07-30 1:00 ` customize Richard Stallman
2002-08-03 0:46 ` Jeff Dwork [this message]
2002-08-09 7:33 ` customize Stefan Monnier
2002-07-30 15:44 ` customize Edward Welbourne
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=15691.10228.135288.202730@localhost.localdomain \
--to=jeff.dwork@amd.com \
--cc=eddy@opera.no \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.