unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alex Schroeder <alex@emacswiki.org>
Subject: Re: [CVS] f7, f8 bound..
Date: Thu, 05 Sep 2002 00:25:51 +0200	[thread overview]
Message-ID: <87lm6htms0.fsf@emacswiki.org> (raw)
In-Reply-To: <m17mc6w-000IeGC@localhost> ("Robert J. Chassell"'s message of "Wed, 4 Sep 2002 15:30:30 +0000 (UTC)")

"Robert J. Chassell" <bob@rattlesnake.com> writes:

> You confuse me:  Suppose I set something with a setq and then, either
> earlier or later in my .emacs file, a customize statement sets a
> symbol property that has the same effect as my setq -- this means I
> have to think both about binding variables and symbol properties.
> Why?
>
> What mental model is leading you to think that two different kinds of
> expression are a good idea?  Or am I misunderstanding you.

The mental model I use is that custom and setq both change the values
of variables.  This leads to confusion if you use either more than
once -- because now order of evaluation is important.  This is true
for two setq, too.

The mental model does not say that the actual lisp expressions, must
be similar.  Often they are; sometimes they are not.  Custom is very
powerful.  When custom sets variables, it can do all kinds of funky
stuff:  The simplest example is perhaps this:

(defcustom whitespace-global-mode nil
  "Toggle global Whitespace mode.

Setting this variable directly does not take effect;
use either \\[customize] or the function `whitespace-global-mode'
\(which see)."
  :set (lambda (sym val)
	 (whitespace-global-mode (or val 0)))
  :initialize 'custom-initialize-default
  :type 'boolean
  :group 'whitespace
  :require 'whitespace)

Setting this variable via custom (such as when loading the
customizations at startup) will call the function
whitespace-global-mode.

Obviously a mental model that tries to understand custom on the basis
of setq is too limited to capture this.

My code does something else:

When you call defkeymap with a default value, the variable is set to
the default value.  Custom, however, saves only the *additions* to the
file.  This, because we don't want to save the entire global-map to
.emacs if the user adds a single keybinding, for example.

From this stance, having a variable with the standard value and
another variable with the additions for custom continues to fit the
mental model.

Hope that helps.

As to pretty printing and sharing -- that would indeed be nice, and
would not involve fancy tricks.  You could, for example, split the one
call to custom-set-variables into one call per variable.  The
simplicity of the current approach is saving:  You only need to search
for the one and only sexp that starts with custom-set-variables, and
replace it.  Finding all individual new custom-set-variable
statements, deleting them, and writing another set, opens the door to
lots of bugs.  Example (schematically):

Currently we use one sexp:

(custom-set-variables ((a 1) (b 2)))

If we explicitly allow (from a tech point of view!) the pasting and
copying, we'd have something like this:

(custom-set-variable a 1)
(custom-set-variable b 2)

But what do we do in this case:

(custom-set-variable a 1)
(when foo
  (custom-set-variable b 2))

We can easily find all the sexps and delete them.  But where do we
write the new customizations:  At the point of the first or the last
sexp we deleted?

Furthermore, assume when we save variables that -- when set -- should
enable a global minor mode.  We *could* save these commands as
required ("the Customize GUI that generates a readable .emacs file
that people can study, modify, and share, if they wish" -- perhaps
that translates to "lisp code similar to what i would write by hand").
Well, in that case we get into the kinds of problems lots of code
wizards get into:  We cannot eat the dogfood we write to files.

So discouraging people from manually fiddling with the save-file helps
us reduce the number of potential bugs.  We could now improve this
saving, or provide functions to import and export settings -- but I
for one do not care too much for it.

> Or are you thinking that people who use Customize are too ignorant
> to ever want to share or learn about Emacs?  Are you figuring that
> these people should be given a low grade, not for hackers, way to
> set values?  Are you thinking that hackers will never want to use
> Customize, even for setting things for which they think Customize is
> useful?

I do not understand the questions.  Is this sarcasm?  Sorry, English
is my third language.  Yes, sometimes custom is the right thing for
people that want to customize Emacs without learning lisp.  Sometimes
custom is the right thing for hackers that do not want to spend too
much time thinking about the complex datastructures they want to
modify (as one might see in Gnus, for example).  So all the options
you offer seem to be pretty narrow.

Personally, I do not use custom anymore at home, but I still use it
regularly at work.

Alex.

  reply	other threads:[~2002-09-04 22:25 UTC|newest]

Thread overview: 221+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-23 14:15 [CVS] f7, f8 bound D. Goel
2002-08-25 23:16 ` Kim F. Storm
2002-08-25 22:39   ` D. Goel
2002-08-26 15:26   ` Stefan Monnier
2002-08-27  2:02     ` Miles Bader
2002-08-27  8:56       ` Kim F. Storm
2002-08-27  8:55     ` Kim F. Storm
2002-08-27  8:55       ` Juanma Barranquero
2002-08-27 10:32         ` Kim F. Storm
2002-08-27 10:01           ` Juanma Barranquero
2002-08-27 11:55             ` Kim F. Storm
2002-08-27 11:07               ` Juanma Barranquero
2002-08-27 16:21       ` Stefan Monnier
2002-08-28  1:12         ` Miles Bader
2002-08-28  9:33           ` Kim F. Storm
2002-08-28  8:54             ` Miles Bader
2002-08-28  9:09               ` Juanma Barranquero
2002-08-28 10:58                 ` Kim F. Storm
2002-08-28 10:21                   ` Juanma Barranquero
2002-08-28  9:09               ` Miles Bader
2002-08-28 10:47                 ` Kim F. Storm
2002-08-28 14:13                   ` Stefan Monnier
2002-08-29 14:35                     ` Kim F. Storm
2002-08-29 17:24                       ` Stefan Monnier
2002-09-08 23:02                         ` Kim F. Storm
2002-09-09 10:49                           ` Francesco Potorti`
2002-09-09 13:43                           ` Miles Bader
2002-09-09 19:14                           ` Richard Stallman
2002-09-09 23:34                             ` Richard Stallman
2002-09-10 21:50                               ` Kim F. Storm
2002-09-09 23:45                             ` Kim F. Storm
2002-09-10 16:36                               ` Richard Stallman
2002-09-10 12:17                             ` Francesco Potorti`
2002-09-10 23:16                               ` Kim F. Storm
2002-09-11  9:03                                 ` Francesco Potorti`
2002-08-28 13:37                 ` Francesco Potorti`
2002-08-28 14:28                   ` Kai Großjohann
2002-08-28 14:41                     ` Francesco Potorti`
2002-08-28 23:33                   ` Richard Stallman
2002-08-29  9:25                     ` Kai Großjohann
2002-08-30  6:09                       ` Richard Stallman
2002-08-30 14:48                         ` Kim F. Storm
2002-08-30 23:55                           ` Miles Bader
2002-08-31 11:21                             ` Alex Schroeder
2002-09-01 13:14                               ` Richard Stallman
2002-09-01 14:22                                 ` Per Abrahamsen
2002-09-01 14:37                                   ` Per Abrahamsen
2002-09-02 17:05                                     ` Stefan Monnier
2002-09-02 17:54                                       ` Kai Großjohann
2002-09-02 23:24                                         ` Stefan Monnier
2002-09-03 10:55                                           ` Per Abrahamsen
2002-09-03 13:02                                             ` Miles Bader
2002-09-03 13:53                                               ` Per Abrahamsen
2002-09-03 15:04                                                 ` Stefan Monnier
2002-09-03 17:31                                                 ` Miles Bader
2002-09-03 19:27                                                   ` Andreas Schwab
2002-09-03 22:56                                                     ` Miles Bader
2002-09-03 23:53                                                       ` Miles Bader
2002-09-04 11:59                                                         ` Robert J. Chassell
2002-09-04 22:35                                                           ` Alex Schroeder
2002-09-03 23:23                                                     ` Robert J. Chassell
2002-09-04 10:31                                                       ` Per Abrahamsen
2002-09-04 15:30                                                         ` Robert J. Chassell
2002-09-04 22:25                                                           ` Alex Schroeder [this message]
2002-09-05 13:00                                                             ` Robert J. Chassell
2002-09-05 10:00                                                           ` Per Abrahamsen
2002-09-05 14:59                                                             ` Robert J. Chassell
2002-09-05 16:18                                                               ` Francesco Potorti`
2002-09-05 19:13                                                                 ` D. Goel
2002-09-05 15:05                                                             ` Robert J. Chassell
2002-09-05 18:03                                                           ` Richard Stallman
2002-09-04 22:00                                                         ` Alex Schroeder
2002-09-05 10:15                                                           ` Per Abrahamsen
2002-09-06  1:16                                                             ` Miles Bader
2002-09-06 10:07                                                               ` Per Abrahamsen
2002-09-06 22:19                                                                 ` Miles Bader
2002-09-07 12:40                                                                   ` Per Abrahamsen
2002-09-06 17:36                                                             ` Stefan Monnier
2002-09-06 22:21                                                               ` Miles Bader
2002-09-07  0:53                                                                 ` Kim F. Storm
2002-09-07  0:32                                                                   ` Miles Bader
2002-09-07  7:59                                                                     ` Alex Schroeder
2002-09-07 10:28                                                                   ` Richard Stallman
2002-09-09 13:35                                                                   ` Stefan Monnier
2002-09-09 15:45                                                                     ` Per Abrahamsen
2002-09-09 23:34                                                                     ` Richard Stallman
2002-09-07 10:28                                                                 ` Richard Stallman
2002-09-07  7:45                                                               ` Alex Schroeder
2002-09-07 14:08                                                               ` Customizing key bindings Alex Schroeder
2002-09-07 23:43                                                                 ` Miles Bader
2002-09-09  8:05                                                                   ` Per Abrahamsen
2002-09-09  9:19                                                                     ` Miles Bader
2002-09-09 12:20                                                                       ` Per Abrahamsen
2002-09-09 14:09                                                                         ` Miles Bader
2002-09-09 15:23                                                                           ` Per Abrahamsen
2002-09-09 17:25                                                                             ` Stefan Monnier
2002-09-09 14:33                                                                         ` Stefan Monnier
2002-09-09 23:34                                                                           ` Richard Stallman
2002-09-09 23:33                                                                       ` Richard Stallman
2002-09-10 10:29                                                                         ` Per Abrahamsen
2002-09-11  1:40                                                                           ` Richard Stallman
2002-09-10 17:57                                                                         ` Alex Schroeder
2002-09-11  3:05                                                                           ` Richard Stallman
2002-09-11  8:52                                                                             ` Per Abrahamsen
2002-09-09  0:21                                                                 ` Richard Stallman
2002-09-09  1:52                                                                   ` Miles Bader
2002-09-09 23:33                                                                     ` Richard Stallman
2002-09-05  2:47                                                         ` [CVS] f7, f8 bound Richard Stallman
2002-09-05  9:39                                                           ` Per Abrahamsen
2002-09-04 14:23                                                 ` Richard Stallman
2002-09-03 14:12                                               ` Kai Großjohann
2002-09-03 15:09                                                 ` Stefan Monnier
2002-09-03 15:17                                                   ` Kai Großjohann
2002-09-02 14:53                                   ` Richard Stallman
2002-09-02 16:40                                     ` Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Per Abrahamsen
2002-09-02 21:55                                       ` Alex Schroeder
2002-09-03 12:27                                         ` Per Abrahamsen
2002-09-03 22:35                                           ` Alex Schroeder
2002-09-03 22:49                                             ` Alex Schroeder
2002-09-04  0:45                                               ` Alex Schroeder
2002-09-04 10:00                                                 ` Per Abrahamsen
2002-09-05  2:47                                                   ` Richard Stallman
2002-09-05  9:18                                                     ` Per Abrahamsen
2002-09-06  4:01                                                       ` Richard Stallman
2002-09-06  9:51                                                         ` Per Abrahamsen
2002-09-04 15:11                                                 ` Stefan Monnier
2002-09-05  9:26                                                   ` Per Abrahamsen
2002-09-06  4:01                                                     ` Richard Stallman
2002-09-06 22:30                                                       ` Kim F. Storm
2002-09-07 14:12                                                     ` Customizing key bindings Alex Schroeder
2002-09-05 18:03                                                   ` Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Richard Stallman
2002-09-05 18:35                                                     ` Per Abrahamsen
2002-09-06 15:10                                                       ` Richard Stallman
2002-09-05  2:46                                               ` Richard Stallman
2002-09-05 16:17                                                 ` Alex Schroeder
2002-09-06  4:01                                                   ` Richard Stallman
2002-09-07 13:50                                                     ` Customizing key bindings Alex Schroeder
2002-09-05 16:47                                               ` Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Kai Großjohann
2002-09-07 14:20                                                 ` use diff-list in Emacs Alex Schroeder
2002-09-07 15:52                                                   ` Kai Großjohann
2002-09-07 22:46                                                     ` Miles Bader
2002-09-08 19:22                                                       ` Kai Großjohann
2002-09-04 14:20                                           ` Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Richard Stallman
2002-09-05 17:20                                             ` Per Abrahamsen
2002-09-06 17:28                                               ` Stefan Monnier
2002-09-06 22:03                                                 ` Miles Bader
2002-09-07 12:01                                                   ` Per Abrahamsen
2002-09-07 12:40                                                     ` Miles Bader
2002-09-07 13:07                                                     ` Per Abrahamsen
2002-09-07 14:17                                                       ` Robert J. Chassell
2002-09-07 17:48                                                         ` What custom is and does Alex Schroeder
2002-09-07 22:57                                                           ` Miles Bader
2002-09-09  7:49                                                           ` Per Abrahamsen
2002-09-07 18:58                                                         ` Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Kai Großjohann
2002-09-09 13:53                                                       ` Stefan Monnier
2002-09-09 14:59                                                         ` Per Abrahamsen
2002-09-09 23:34                                                         ` Richard Stallman
2002-09-07  9:06                                               ` Alex Schroeder
2002-09-07 12:11                                                 ` Per Abrahamsen
2002-09-07  9:15                                               ` Alex Schroeder
2002-09-07 12:28                                                 ` Per Abrahamsen
2002-09-07 13:48                                                   ` Customizing key bindings Alex Schroeder
2002-09-07 13:56                                                   ` Alex Schroeder
2002-09-07 13:39                                                 ` Alex Schroeder
2002-09-07 15:10                                                   ` Per Abrahamsen
2002-09-09 22:06                                                     ` Alex Schroeder
2002-09-09 22:12                                                       ` Alex Schroeder
2002-09-09 22:49                                                         ` Alex Schroeder
2002-09-09 22:58                                                           ` Stefan Monnier
2002-09-10 10:19                                                           ` Per Abrahamsen
2002-09-08 12:54                                                 ` Customizing key bindings (was: Re: [CVS] f7, f8 bound..) Richard Stallman
2002-09-09  7:57                                                   ` Per Abrahamsen
2002-09-09 23:33                                                     ` Richard Stallman
2002-09-10 18:07                                                       ` Alex Schroeder
2002-09-11  3:04                                                         ` Richard Stallman
2002-09-11  8:49                                                         ` Per Abrahamsen
2002-09-11 20:03                                                           ` Richard Stallman
2002-09-09 21:09                                                   ` Alex Schroeder
     [not found]                             ` <m2it1qqmae.fsf@primate.xs4all.nl>
2002-09-01 10:36                               ` [CVS] f7, f8 bound Miles Bader
2002-09-01 13:02                               ` Eli Zaretskii
2002-09-01 13:45                                 ` Pavel Janík
2002-09-01 16:57                                   ` Eli Zaretskii
2002-09-01 16:57                                   ` Eli Zaretskii
2002-09-01 13:14                             ` Richard Stallman
2002-09-06 12:55                           ` Francesco Potorti`
     [not found]                         ` <m2r8geqole.fsf@primate.xs4all.nl>
2002-09-01  5:19                           ` Damien Elmes
2002-09-02  0:01                           ` Richard Stallman
2002-09-03  0:04                             ` David A. Cobb
2002-08-29 14:38                   ` Kim F. Storm
2002-08-29 13:47                     ` Francesco Potorti`
     [not found]                   ` <m2wuq6qpai.fsf@primate.xs4all.nl>
2002-09-01 10:45                     ` Miles Bader
2002-08-28 18:42               ` Edward O'Connor
2002-08-29  1:16                 ` Miles Bader
2002-08-28 23:32               ` Richard Stallman
2002-08-29  1:14                 ` Miles Bader
2002-08-30  6:10                   ` Richard Stallman
2002-08-30  6:22                     ` Miles Bader
2002-08-30 19:17                       ` Richard Stallman
2002-08-31  0:40                         ` Kim F. Storm
2002-08-31  2:16                       ` Miles Bader
2002-09-01 13:15                         ` Richard Stallman
2002-09-02  1:23                           ` Miles Bader
2002-09-02 10:22                             ` Kim F. Storm
2002-09-02  9:38                               ` Miles Bader
2002-09-03 13:26                             ` Richard Stallman
2002-09-03 14:39                               ` Kim F. Storm
2002-09-04 14:21                                 ` Richard Stallman
2002-09-08 22:51                                 ` Kim F. Storm
2002-08-30  6:10                   ` Richard Stallman
2002-08-30 14:35                     ` Stefan Monnier
2002-08-30 19:19                       ` Richard Stallman
2002-08-31  0:00                       ` Miles Bader
2002-08-31 11:28                         ` Alex Schroeder
2002-08-30 14:49                     ` Francesco Potorti`
2002-08-31  0:33                       ` Kim F. Storm
2002-08-31  6:07                         ` Eli Zaretskii
2002-08-29 14:42                 ` Kim F. Storm
2002-08-30  1:05                   ` Miles Bader
2002-08-30 12:07                     ` Kim F. Storm
2002-08-30  6:09                   ` Richard Stallman
2002-08-28  6:52       ` Richard Stallman

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lm6htms0.fsf@emacswiki.org \
    --to=alex@emacswiki.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 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).