* Re: customize [not found] ` <E17SgpB-0003rO-00@whorl.intern.opera.no> @ 2002-07-14 15:22 ` Richard Stallman 2002-07-15 9:18 ` customize Edward Welbourne [not found] ` <15680.26449.937153.817907@localhost.localdomain> 1 sibling, 1 reply; 32+ messages in thread From: Richard Stallman @ 2002-07-14 15:22 UTC (permalink / raw) Cc: emacs-devel Thus my own config can't control the face, because customize insists on having the last word (and saying: suppress this face) I don't understand what you mean, "saying: suppress this face." Could you explain more precisely? This may be a very simple and localized bug, but I can't tell, because I don't really understand the scenario. What does (custom-set-faces '(trailing-whitespace ((t nil)))) do? What is it supposed to do? What settings did you specify in customize for that face? You said "turning off the configuration option for it"; what does "it" refer to here, and which option is that? ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-14 15:22 ` customize Richard Stallman @ 2002-07-15 9:18 ` Edward Welbourne 2002-07-15 14:08 ` customize Stefan Monnier 2002-07-16 13:28 ` customize Richard Stallman 0 siblings, 2 replies; 32+ messages in thread From: Edward Welbourne @ 2002-07-15 9:18 UTC (permalink / raw) Cc: emacs-devel > What does (custom-set-faces '(trailing-whitespace ((t nil)))) do? > What is it supposed to do? it is supposed to configure the trailing-whitespace face, activated by setting show-trailing-whitespace to a non-nil value; however, it sets the face to always have no attributes set. This appears consistent with what it *does*: the face is just ordinary background, making the trailing hspace (which, for me, is actually blackspace, not whitespace; I use reverse-video systematically) invisible despite being `shown'. This is perfectly correct behaviour. I just didn't want this code in my .emacs, after the point where my .emacs loads my .sys/elisp/init.el which configures the face using set-face-background (and doesn't contain any dire warnings about not editing this other than via the appropriate wizard; I can edit the color name, evaluate the expression, see if I like it, etc. until I like it, then byte compile the file and *know*, as opposed to hoping, that it'll Do What I Want; which is currently grey18). > What settings did you specify in customize for that face? This'll have to wait until I'm not in the middle of a session with lots of saved state: I am *not* going to play with customize except in a session I'm happy to abort shortly afterwards (because this is what I've *always* had to do shortly after using customize), but roughly speaking: I went to the config section for trailing whitespace and unchecked the check-box for the background colour specification of the face, then saved the configuration. The customize behaviour here is to configure the face to be invisible, rather than to remove the configuration of that face from my .emacs file. If this is what customize is meant to do in this case, please could we have a control on the GUI that says `customize back off here and say nothing about this face' for use by those who want to do this via our own elisp. > You said "turning off the configuration option for it"; what does > "it" refer to here, and which option is that? "it" was the face, trailing-whitespace. For details of which option that was in the GUI, see above on my reticence about firing up customize just to find out how it described the face. It may be a while before I get such a break - I am busy and emacs is generally so well behaved I don't have to exit it other than on the rare occasions my Debian GNU/Linux box needs rebooted. But when I do take such a break, I'll dig through these e-mails answering lots of questions. Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-15 9:18 ` customize Edward Welbourne @ 2002-07-15 14:08 ` Stefan Monnier 2002-07-15 15:36 ` customize Edward Welbourne 2002-07-16 13:28 ` customize Richard Stallman 1 sibling, 1 reply; 32+ messages in thread From: Stefan Monnier @ 2002-07-15 14:08 UTC (permalink / raw) Cc: rms, emacs-devel > > What does (custom-set-faces '(trailing-whitespace ((t nil)))) do? [...] > I just didn't want this code in my .emacs, after the point where my [...] > The customize behaviour here is to configure the face to be invisible, > rather than to remove the configuration of that face from my .emacs > file. If this is what customize is meant to do in this case, please > could we have a control on the GUI that says `customize back off here > and say nothing about this face' for use by those who want to do this > via our own elisp. I think that's what the "erase customization" option is for (in the menu that pops up when you middle-click on `state'). Have you tried it ? Stefan ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-15 14:08 ` customize Stefan Monnier @ 2002-07-15 15:36 ` Edward Welbourne 0 siblings, 0 replies; 32+ messages in thread From: Edward Welbourne @ 2002-07-15 15:36 UTC (permalink / raw) Cc: rms, emacs-devel > I think that's what the "erase customization" option is for > (in the menu that pops up when you middle-click on `state'). > Have you tried it ? aha ! The UI detail I hadn't found. I'll look for it when I come to play with this later. Thanks for mentioning its existence. Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-15 9:18 ` customize Edward Welbourne 2002-07-15 14:08 ` customize Stefan Monnier @ 2002-07-16 13:28 ` Richard Stallman 1 sibling, 0 replies; 32+ messages in thread From: Richard Stallman @ 2002-07-16 13:28 UTC (permalink / raw) Cc: emacs-devel it is supposed to configure the trailing-whitespace face, activated by setting show-trailing-whitespace to a non-nil value; however, it sets the face to always have no attributes set. This appears consistent with what it *does*: the face is just ordinary background, making the trailing hspace (which, for me, is actually blackspace, not whitespace; I use reverse-video systematically) invisible despite being `shown'. This is perfectly correct behaviour. Ok. If this is what customize is meant to do in this case, please could we have a control on the GUI that says `customize back off here and say nothing about this face' for use by those who want to do this via our own elisp. That is the Erase Customization button. It is supposed to put any face or variable back in its standard settings. However, I just tried that and it didn't work for faces. I fixed several bugs in that feature. Now it removes the info about that face in .emacs. I also fixed it so that if the face is in its standard state, and you do Save for Future Sessions, it saves nothing about that face. ^ permalink raw reply [flat|nested] 32+ messages in thread
[parent not found: <15680.26449.937153.817907@localhost.localdomain>]
* Re: customize [not found] ` <15680.26449.937153.817907@localhost.localdomain> @ 2002-07-27 18:53 ` Richard Stallman 2002-07-29 11:17 ` customize Edward Welbourne 0 siblings, 1 reply; 32+ messages in thread From: Richard Stallman @ 2002-07-27 18:53 UTC (permalink / raw) Cc: emacs-devel I documented custom-face, but I don't see a reason to change the default to use a different file. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-27 18:53 ` customize Richard Stallman @ 2002-07-29 11:17 ` Edward Welbourne 2002-07-29 12:49 ` customize Kai Großjohann ` (2 more replies) 0 siblings, 3 replies; 32+ messages in thread From: Edward Welbourne @ 2002-07-29 11:17 UTC (permalink / raw) Cc: jeff.dwork, emacs-devel > 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. But I'm guessing that's what you meant. Three reasons for setting custom-face to somewhere other than ~/.emacs (only arguably reasons against using ~/.emacs as default for custom-face): * 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. * 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. * Byte-compilation: putting it all in a separate .el file provides for the possibility of byte-compiling the customization elisp. Having customize write to ~/.emacs leads to its works being mixed up with the user's hand-coded elisp; it also ensures that customize's actions over-ride everything the user sets up in elisp. Two reasons for using ~/.emacs as the default: * Simplicity: ~/.emacs is being loaded anyway; if customize writes to any other file, ~/.emacs must load that file; users will be confused/upset if their customization efforts have no effect (because the file the customization was recorded in hasn't been loaded). * Convenience/consistency: using a byte-compiled file requires recompilation each time any customizations get added. Personally, I'm with Jeff on this ... but I suspect this is the natural bias of old hands; while newbies need convenience with simplicity, and can't be expected to work out what to do about problems. Having the customization system provide a clear and prominent mention of custom-file's role, on its front page, would probably be the wisest approach; newbies could safely ignore it and have their customizations work, while old hands would have the one clue we need to fix it up the way we prefer. Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 11:17 ` customize Edward Welbourne @ 2002-07-29 12:49 ` Kai Großjohann 2002-07-29 13:50 ` customize Edward Welbourne 2002-07-30 1:00 ` customize Richard Stallman 2002-08-09 7:33 ` customize Stefan Monnier 2 siblings, 1 reply; 32+ messages in thread From: Kai Großjohann @ 2002-07-29 12:49 UTC (permalink / raw) Cc: rms, jeff.dwork, emacs-devel Edward Welbourne <eddy@opera.no> writes: > * 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. custom-set-* doesn't have to come last in ~/.emacs. After it is there, you can add stuff in ~/.emacs after it. kai -- A large number of young women don't trust men with beards. (BFBS Radio) ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 12:49 ` customize Kai Großjohann @ 2002-07-29 13:50 ` Edward Welbourne 2002-07-29 15:22 ` customize chad ` (2 more replies) 0 siblings, 3 replies; 32+ messages in thread From: Edward Welbourne @ 2002-07-29 13:50 UTC (permalink / raw) Cc: rms, jeff.dwork, emacs-devel > custom-set-* doesn't have to come last in ~/.emacs. but customize always adds it at the end. > 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 (and marked with a warning against modifying them other than via the customize UI), which will make it harder to keep track of what's going on, what one can safely modify, etc.; maintenance nightmare. Meanwhile, this adds opportunities for customize (if we don't assume it has no bugs in it) to get confused by the intermingling and, e.g., either fail to notice some of its earlier works or mistake some user-elisp for customize insertions. Having customize add everything it does to a single file, maintained entirely via the customize UI, loaded at a well-considered moment in one's start-up sequence, will provide for tidier source-management, easier maintenance, better control over the start-up process, less opportunity for any bugs in customize to manifest themselves and probably less bugs in initialisation. As Jeff pointed out, it also makes it easier to cope with switching between different versions of emacs. Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 13:50 ` customize Edward Welbourne @ 2002-07-29 15:22 ` chad 2002-08-05 17:47 ` customize Per Abrahamsen 2002-07-29 16:15 ` customize Per Abrahamsen 2002-07-30 5:14 ` customize Eli Zaretskii 2 siblings, 1 reply; 32+ messages in thread From: chad @ 2002-07-29 15:22 UTC (permalink / raw) Cc: eddy > Having customize add everything it does to a single file, maintained > entirely via the customize UI, loaded at a well-considered moment in > one's start-up sequence, will provide for tidier source-management, > easier maintenance, better control over the start-up process, less > opportunity for any bugs in customize to manifest themselves and > probably less bugs in initialisation. Yes, please. At least twice I've had to track down pernicious problems that turned out to result from customize `stuff' being at the end of .emacs. I would much prefer a situation where customize modified a different file, and .emacs contained a call to `customize-do-customizations' or somesuch. chad ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 15:22 ` customize chad @ 2002-08-05 17:47 ` Per Abrahamsen 2002-08-06 16:53 ` customize chad 2002-08-09 6:52 ` customize Stefan Monnier 0 siblings, 2 replies; 32+ messages in thread From: Per Abrahamsen @ 2002-08-05 17:47 UTC (permalink / raw) Cc: emacs-devel, eddy chad <y@mit.edu> writes: > I would much prefer a situation where customize modified a > different file, and .emacs contained a call to > `customize-do-customizations' or somesuch. Could "somesuch" be: (setq custom-file "~/.custom") (load-file custom-file) ? ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-05 17:47 ` customize Per Abrahamsen @ 2002-08-06 16:53 ` chad 2002-08-09 6:52 ` customize Stefan Monnier 1 sibling, 0 replies; 32+ messages in thread From: chad @ 2002-08-06 16:53 UTC (permalink / raw) Cc: chad, emacs-devel, eddy Yes, in fact. :-) This was already pointed out to me privately by eddy@opera.no. Thanks to you both. chad ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-05 17:47 ` customize Per Abrahamsen 2002-08-06 16:53 ` customize chad @ 2002-08-09 6:52 ` Stefan Monnier 2002-08-09 8:32 ` customize Edward Welbourne 2002-08-10 17:16 ` customize Richard Stallman 1 sibling, 2 replies; 32+ messages in thread From: Stefan Monnier @ 2002-08-09 6:52 UTC (permalink / raw) Cc: chad, emacs-devel, eddy > > I would much prefer a situation where customize modified a > > different file, and .emacs contained a call to > > `customize-do-customizations' or somesuch. > > Could "somesuch" be: > > (setq custom-file "~/.custom") > (load custom-file) BTW. How about changing startup.el such that custom-file is loaded (after .emacs) if it has been set and if the file hasn't been loaded yet (such that users only need to put (setq custom-file "~/.custom") in their .emacs file) ? Stefan ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-09 6:52 ` customize Stefan Monnier @ 2002-08-09 8:32 ` Edward Welbourne 2002-08-10 12:30 ` customize Stefan Monnier 2002-08-10 17:16 ` customize Richard Stallman 1 sibling, 1 reply; 32+ messages in thread From: Edward Welbourne @ 2002-08-09 8:32 UTC (permalink / raw) Cc: abraham, y, emacs-devel > BTW. How about changing startup.el such that custom-file is loaded > (after .emacs) if it has been set and if the file hasn't been loaded > yet (such that users only need to put (setq custom-file "~/.custom") > in their .emacs file) ? sounds a neat idea, unless it raises tiresome implementation issues ... > Byte-compiling your customizations is a complete waste of precious time. Why ? Note that having robots do things can make the amount of precious time involved very small ... and byte-compiling a file after I've edited it takes less time than writing a quick reply to an e-mail ... Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-09 8:32 ` customize Edward Welbourne @ 2002-08-10 12:30 ` Stefan Monnier 2002-08-12 8:00 ` customize, futility of byte-compiling Edward Welbourne 0 siblings, 1 reply; 32+ messages in thread From: Stefan Monnier @ 2002-08-10 12:30 UTC (permalink / raw) Cc: monnier+gnu/emacs, abraham, y, emacs-devel > > Byte-compiling your customizations is a complete waste of precious time. > Why ? Since it has no benefit whatsoever, it's pretty obvious that it's a waste of time, given that you have to spend some time byte-compiling and/or setting up an auto-byte-compile system. Stefan ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize, futility of byte-compiling 2002-08-10 12:30 ` customize Stefan Monnier @ 2002-08-12 8:00 ` Edward Welbourne 2002-08-12 10:01 ` Per Abrahamsen 2002-08-12 16:14 ` Stefan Monnier 0 siblings, 2 replies; 32+ messages in thread From: Edward Welbourne @ 2002-08-12 8:00 UTC (permalink / raw) Cc: monnier+gnu/emacs, abraham, y, emacs-devel > Since it has no benefit whatsoever, this is the bit that needs explained. Why does byte-compilation gain no benefit ? Is this specific to customizations, or generally true ? Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize, futility of byte-compiling 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 1 sibling, 0 replies; 32+ messages in thread From: Per Abrahamsen @ 2002-08-12 10:01 UTC (permalink / raw) Cc: emacs-devel Edward Welbourne <eddy@opera.no> writes: > Why does byte-compilation gain no benefit ? > Is this specific to customizations, or generally true ? The "customize" information is just a single function call, all the real work is done by the function it calls. So you can byte-compile the call to the function, but that doesn't make the function itself (where the time is spend) any faster. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize, futility of byte-compiling 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 1 sibling, 0 replies; 32+ messages in thread From: Stefan Monnier @ 2002-08-12 16:14 UTC (permalink / raw) Cc: monnier+gnu/emacs, abraham, y, emacs-devel > > Since it has no benefit whatsoever, > this is the bit that needs explained. No, you got it wrong: the bit that needs to be explained is what kind of benefit do you think there is. Stefan ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-09 6:52 ` customize Stefan Monnier 2002-08-09 8:32 ` customize Edward Welbourne @ 2002-08-10 17:16 ` Richard Stallman 2002-08-13 16:28 ` customize Stefan Monnier 1 sibling, 1 reply; 32+ messages in thread From: Richard Stallman @ 2002-08-10 17:16 UTC (permalink / raw) Cc: abraham, y, emacs-devel, eddy BTW. How about changing startup.el such that custom-file is loaded (after .emacs) if it has been set and if the file hasn't been loaded yet (such that users only need to put (setq custom-file "~/.custom") in their .emacs file) ? I see nothing wrong with that. Want to do it? ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-10 17:16 ` customize Richard Stallman @ 2002-08-13 16:28 ` Stefan Monnier 2002-08-14 5:15 ` customize Richard Stallman 0 siblings, 1 reply; 32+ messages in thread From: Stefan Monnier @ 2002-08-13 16:28 UTC (permalink / raw) Cc: monnier+gnu/emacs, abraham, y, emacs-devel, eddy > BTW. How about changing startup.el such that custom-file is loaded > (after .emacs) if it has been set and if the file hasn't been loaded yet > (such that users only need to put (setq custom-file "~/.custom") in > their .emacs file) ? > > I see nothing wrong with that. Want to do it? I use the patch below. If there's no objection, I'll install it. We can then change the manual's example to just be (setq custom-file "~/.emacs-custom") -- Stefan --- startup.el 4 Aug 2002 16:18:18 -0000 1.303 +++ startup.el 13 Aug 2002 16:25:37 -0000 @@ -932,6 +935,12 @@ (sit-for 1)) (setq user-init-file source)))) + (when (and (stringp custom-file) + (not (assoc custom-file load-history))) + ;; If the .emacs file has set `custom-file' but hasn't + ;; loaded the file yet, let's load it. + (load custom-file t t)) + (or inhibit-default-init (let ((inhibit-startup-message nil)) ;; Users are supposed to be told their rights. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-13 16:28 ` customize Stefan Monnier @ 2002-08-14 5:15 ` Richard Stallman 2002-08-14 21:51 ` customize Stefan Monnier 0 siblings, 1 reply; 32+ messages in thread From: Richard Stallman @ 2002-08-14 5:15 UTC (permalink / raw) Cc: monnier+gnu/emacs, abraham, y, emacs-devel, eddy It looks good to me. Can you change the manual too? ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-08-14 5:15 ` customize Richard Stallman @ 2002-08-14 21:51 ` Stefan Monnier 0 siblings, 0 replies; 32+ messages in thread From: Stefan Monnier @ 2002-08-14 21:51 UTC (permalink / raw) Cc: monnier+gnu/emacs, abraham, y, emacs-devel, eddy > It looks good to me. Can you change the manual too? Done. Stefan ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 13:50 ` customize Edward Welbourne 2002-07-29 15:22 ` customize chad @ 2002-07-29 16:15 ` Per Abrahamsen 2002-07-29 18:15 ` customize Edward Welbourne 2002-07-30 5:14 ` customize Eli Zaretskii 2 siblings, 1 reply; 32+ messages in thread From: Per Abrahamsen @ 2002-07-29 16:15 UTC (permalink / raw) Cc: emacs-devel Edward Welbourne <eddy@opera.no> writes: >> custom-set-* doesn't have to come last in ~/.emacs. > but customize always adds it at the end. > >> 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 (and marked with a warning > against modifying them other than via the customize UI), which will > make it harder to keep track of what's going on, what one can safely > modify, etc.; maintenance nightmare. Unless something has changed drastically, customize will do the following: 1. Scan custom-file for a custom-set-variables top level form. 2. Remove it if found, otherwise go to (or stay at) the end of the file. 3. Insert a new custom-set-variables. The effect of this is that if you move the custom-set-variables call, it will stay put. And there will only be one such call on the top level, unless you yourself add an extra, in which case all bets are off. Same for custom-set-faces. Maybe you have tried to move it to a nested form? That won't work. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 16:15 ` customize Per Abrahamsen @ 2002-07-29 18:15 ` Edward Welbourne 2002-07-29 19:42 ` customize Kai Großjohann 2002-07-30 5:16 ` customize Eli Zaretskii 0 siblings, 2 replies; 32+ messages in thread From: Edward Welbourne @ 2002-07-29 18:15 UTC (permalink / raw) Cc: emacs-devel > The effect of this is that if you move the custom-set-variables > call, it will stay put. neat. However, new customizations will always go at the end of the file: if I want some elisp to be run after *everything* that customize controls (e.g. if I want it to be the last thing my ~/.emacs does), I'm going to have to move that elisp each time I customize anything new ... *unless* I keep the things customize controls in a separate file and have ~/.emacs run my elisp after loading that custom-file. Fortunately, the variable custom-file is there to let us do this. The only issue is ensuring that folk who're comfortable writing elisp *do* find out about custom-file when using customize - for which it will suffice to mention custom-file (prominently enough) on the first page of the UI that M-x customize throws up. The only real problem (for anyone happy to write elisp) with configuring emacs is lack of information: until one knows the right name to ask for help about, it can be very hard to discover any clues ... which is sort of inevitable, if somewhat frustrating at times. Mentioning relevant names on the pages customize offers would be a great help. Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 18:15 ` customize Edward Welbourne @ 2002-07-29 19:42 ` Kai Großjohann 2002-07-30 8:32 ` customize Edward Welbourne 2002-07-30 5:16 ` customize Eli Zaretskii 1 sibling, 1 reply; 32+ messages in thread From: Kai Großjohann @ 2002-07-29 19:42 UTC (permalink / raw) Cc: abraham, emacs-devel Edward Welbourne <eddy@opera.no> writes: > neat. However, new customizations will always go at the end of the > file: if I want some elisp to be run after *everything* that customize > controls (e.g. if I want it to be the last thing my ~/.emacs does), > I'm going to have to move that elisp each time I customize anything > new ... *unless* I keep the things customize controls in a separate > file and have ~/.emacs run my elisp after loading that custom-file. No. Customize just adds two statements, custom-set-variable and custom-set-faces. Once they are in .emacs, they stay put. So you move them to the beginning of the file, and there they stay. Or is it not working that way for you? If this is really the case, then something strange must be going on and you should provide a recipe to describe what happens. kai -- A large number of young women don't trust men with beards. (BFBS Radio) ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 19:42 ` customize Kai Großjohann @ 2002-07-30 8:32 ` Edward Welbourne 2002-07-30 11:32 ` customize Robert J. Chassell 0 siblings, 1 reply; 32+ messages in thread From: Edward Welbourne @ 2002-07-30 8:32 UTC (permalink / raw) Cc: abraham, emacs-devel > Customize just adds two statements, custom-set-variable and > custom-set-faces. ah, each of which sets many, like setq can ? Nice. OK, I'd only used customize for one thing at a time thus far, so it'd appeared to have one statement per thing to be set ... mistaken extrapolation on my part here, exacerbated by paranoid reading of the comments in the custom-set-* statements, which appeared to say I shouldn't mess with them at all (which I read as not even moving them). That only leaves the scary behaviour I've had out of customize to date, which I'll report on when next I'm exiting emacs, or re-starting after a crash or re-boot (i.e. when I next don't have lots of state held by live buffers) ... however, the downside of reliable software (e.g. GNU/Linux and emacs in particular) is that this isn't guaranteed to happen several times per day ... indeed, this emacs session is now 20 days old and showing no signs of trouble. Eddy. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-30 8:32 ` customize Edward Welbourne @ 2002-07-30 11:32 ` Robert J. Chassell 0 siblings, 0 replies; 32+ messages in thread From: Robert J. Chassell @ 2002-07-30 11:32 UTC (permalink / raw) Cc: emacs-devel ... however, the downside of reliable software (e.g. GNU/Linux and emacs in particular) is that this isn't guaranteed to happen several times per day ... indeed, this emacs session is now 20 days old and showing no signs of trouble. I know the problem. For testing purposes I start a separate instance of Emacs, one that I call a `plain vanilla' Emacs since I do not load my normal .emacs file, but start it `-q --no-site-file'. Using this `plain vanilla' Emacs, I can load and evaluate a test .emacs file or the customize expressions in my .emacs file or test other features. Here is the expression I use in my ~bob/.twmrc file "Vanilla Emacs 21 under GDB" !"xterm -T 'GDB for Vanilla Emacs' \ -n 'GDB for Vanilla Emacs' \ -bg mediumblue -fg white \ -geometry 80x24+965+4 \ -wf -e gdb /usr/local/bin/emacs \ -x /home/bob/.gdb-vanilla-emacs-config & " where /home/bob/.gdb-vanilla-emacs-config consists of: run -q --no-site-file --eval '(blink-cursor-mode 0)' show args -- Robert J. Chassell bob@rattlesnake.com Rattlesnake Enterprises http://www.rattlesnake.com ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 18:15 ` customize Edward Welbourne 2002-07-29 19:42 ` customize Kai Großjohann @ 2002-07-30 5:16 ` Eli Zaretskii 1 sibling, 0 replies; 32+ messages in thread From: Eli Zaretskii @ 2002-07-30 5:16 UTC (permalink / raw) Cc: emacs-devel On Mon, 29 Jul 2002, Edward Welbourne wrote: > new customizations will always go at the end of the > file: if I want some elisp to be run after *everything* that customize > controls (e.g. if I want it to be the last thing my ~/.emacs does), > I'm going to have to move that elisp each time I customize anything > new That's why startup.el defines a few hooks. Code that needs to be run at specific moments in the initialization phase should use those hooks rather than depend on its place in ~/.emacs. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 13:50 ` customize Edward Welbourne 2002-07-29 15:22 ` customize chad 2002-07-29 16:15 ` customize Per Abrahamsen @ 2002-07-30 5:14 ` Eli Zaretskii 2 siblings, 0 replies; 32+ messages in thread From: Eli Zaretskii @ 2002-07-30 5:14 UTC (permalink / raw) Cc: jeff.dwork, emacs-devel On Mon, 29 Jul 2002, Edward Welbourne wrote: > Having customize add everything it does to a single file, maintained > entirely via the customize UI, loaded at a well-considered moment in > one's start-up sequence, will provide for tidier source-management, > easier maintenance, better control over the start-up process, less > opportunity for any bugs in customize to manifest themselves and > probably less bugs in initialisation. I suspect that the problem of where exactly in the startup sequence to load that separate file, i.e. the problem of choosing that ``well-considered moment'' is no less complicated than the ones you find in the current operation of the code. ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 11:17 ` customize Edward Welbourne 2002-07-29 12:49 ` customize Kai Großjohann @ 2002-07-30 1:00 ` Richard Stallman 2002-08-03 0:46 ` customize Jeff Dwork 2002-08-09 7:33 ` customize Stefan Monnier 2 siblings, 1 reply; 32+ messages in thread From: Richard Stallman @ 2002-07-30 1:00 UTC (permalink / raw) Cc: jeff.dwork, emacs-devel > 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? ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-30 1:00 ` customize Richard Stallman @ 2002-08-03 0:46 ` Jeff Dwork 0 siblings, 0 replies; 32+ messages in thread From: Jeff Dwork @ 2002-08-03 0:46 UTC (permalink / raw) Cc: eddy, emacs-devel 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 | ^ permalink raw reply [flat|nested] 32+ messages in thread
* Re: customize 2002-07-29 11:17 ` customize Edward Welbourne 2002-07-29 12:49 ` customize Kai Großjohann 2002-07-30 1:00 ` customize Richard Stallman @ 2002-08-09 7:33 ` Stefan Monnier 2 siblings, 0 replies; 32+ messages in thread From: Stefan Monnier @ 2002-08-09 7:33 UTC (permalink / raw) Cc: rms, jeff.dwork, emacs-devel > * Byte-compilation: putting it all in a separate .el file provides > for the possibility of byte-compiling the customization elisp. Byte-compiling your customizations is a complete waste of precious time. Stefan ^ permalink raw reply [flat|nested] 32+ messages in thread
end of thread, other threads:[~2002-08-14 21:51 UTC | newest] Thread overview: 32+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <E17SKgH-00005W-00@whorl.intern.opera.no> [not found] ` <200207111201.g6BC1OM16938@aztec.santafe.edu> [not found] ` <E17SgpB-0003rO-00@whorl.intern.opera.no> 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 [not found] ` <15680.26449.937153.817907@localhost.localdomain> 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 ` customize Jeff Dwork 2002-08-09 7:33 ` customize Stefan Monnier
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).