From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Robert J. Chassell" Newsgroups: gmane.emacs.devel Subject: Re: [CVS] f7, f8 bound.. Date: Thu, 5 Sep 2002 13:00:28 +0000 (UTC) Sender: emacs-devel-admin@gnu.org Message-ID: References: <87ofbji88u.fsf@emacswiki.org> <200209021705.g82H50d07442@rum.cs.yale.edu> <200209022324.g82NOoO08761@rum.cs.yale.edu> <20020903130247.GA6318@gnu.org> <20020903173120.GA29981@gnu.org> <87lm6htms0.fsf@emacswiki.org> Reply-To: bob@rattlesnake.com NNTP-Posting-Host: localhost.gmane.org X-Trace: main.gmane.org 1031230827 7081 127.0.0.1 (5 Sep 2002 13:00:27 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 5 Sep 2002 13:00:27 +0000 (UTC) Cc: emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17mwFF-0001pm-00 for ; Thu, 05 Sep 2002 15:00:25 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17mwov-0007cn-00 for ; Thu, 05 Sep 2002 15:37:18 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17mwGq-0004ti-00; Thu, 05 Sep 2002 09:02:04 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17mwFe-0004qy-00 for emacs-devel@gnu.org; Thu, 05 Sep 2002 09:00:50 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17mwFb-0004pj-00 for emacs-devel@gnu.org; Thu, 05 Sep 2002 09:00:49 -0400 Original-Received: from megalith.rattlesnake.com ([140.186.114.245] helo=localhost) by monty-python.gnu.org with esmtp (Exim 4.10) id 17mwFY-0004oS-00 for emacs-devel@gnu.org; Thu, 05 Sep 2002 09:00:44 -0400 Original-Received: by rattlesnake.com via sendmail from stdin id (Debian Smail3.2.0.114) Thu, 5 Sep 2002 13:00:28 +0000 (UTC) Original-To: alex@emacswiki.org In-Reply-To: <87lm6htms0.fsf@emacswiki.org> (message from Alex Schroeder on Thu, 05 Sep 2002 00:25:51 +0200) Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:7534 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:7534 Thank you for the explanation. This helps! When you call defkeymap with a default value, the variable is set to the default value. Custom, however, saves only the *additions* ... This is a wonderful tool, but it is named wrongly. If I understand you rightly, its name should be something like: custom-add-delete and its documentation should say something like this (but better): `custom-add-delete' saves only changes; it adds or deletes values. In contrast to `setq', this is a destructive function, like `set' Then as an example you might show (where ==> means, `evaluates to'): (setq foovar '(a . 1)) (custom-set-variable b 2) foovar ==> ((a . 1) (b . 2)) (custom-set-variable b nil) foovar ==> ((a . 1)) You say: ... ("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"). Yes, that is a way of translating it. What I am trying to say is that we should be able to understand the code fairly readily. 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. This is the wrong way to think about computers or software. After all, many /etc/ configuration files are created or modified automatically; but you want to be able to read and edit them, right? Similarly, Emacs is designed to be easily modifiable, more easily understood and worked with than most programs. We should continue this. So discouraging people from manually fiddling with the save-file helps us reduce the number of potential bugs. On the contrary, we should encourage people to try things out, to learn. That is the only way they will become better. Of course, that takes good design, so that novices do not get themselves into bad trouble. Novices need to learn that they can always start a plain vanilla instance of Emacs; and even more important, they need to learn how to return to the state their already modified Emacs was in before they changed it in ways they dislike. The idea that that `custom-add-delete' should simply add or delete a customization, is good design. It means that a novice can focus on just the change he or she wants to make, and be sure it works. And again, I want to say that some way to remember history, or tell people about existing history -- how to return to the state they were in, before screwing up! -- that is important, too. -- Robert J. Chassell bob@rattlesnake.com bob@gnu.org Rattlesnake Enterprises http://www.rattlesnake.com Free Software Foundation http://www.gnu.org GnuPG Key ID: 004B4AC8