From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Uday S Reddy Newsgroups: gmane.emacs.devel Subject: RE: Key bindings proposal Date: Fri, 27 Aug 2010 09:56:24 +0100 Message-ID: <19575.32184.884000.341574@gargle.gargle.HOWL> References: <19534.1494.627000.357123@gargle.gargle.HOWL> <19537.40472.267000.563053@gargle.gargle.HOWL> <87tymlv41y.fsf@mail.jurta.org> <8D701A9E7D444011925CB68BF0883D2B@us.oracle.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1282899421 31775 80.91.229.12 (27 Aug 2010 08:57:01 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 27 Aug 2010 08:57:01 +0000 (UTC) Cc: 'Juri Linkov' , 'Uday S Reddy' , emacs-devel@gnu.org To: "Drew Adams" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Aug 27 10:56:56 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Oouk3-00026z-MH for ged-emacs-devel@m.gmane.org; Fri, 27 Aug 2010 10:56:55 +0200 Original-Received: from localhost ([127.0.0.1]:48515 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Oouk2-0002tW-Ul for ged-emacs-devel@m.gmane.org; Fri, 27 Aug 2010 04:56:54 -0400 Original-Received: from [140.186.70.92] (port=44132 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ooujq-0002t6-Ev for emacs-devel@gnu.org; Fri, 27 Aug 2010 04:56:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Ooujl-0000pl-C6 for emacs-devel@gnu.org; Fri, 27 Aug 2010 04:56:42 -0400 Original-Received: from sun60.bham.ac.uk ([147.188.128.137]:64617) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Ooujl-0000pZ-6q for emacs-devel@gnu.org; Fri, 27 Aug 2010 04:56:37 -0400 Original-Received: from [147.188.128.127] (helo=bham.ac.uk) by sun60.bham.ac.uk with esmtp (Exim 4.67) (envelope-from ) id 1Oouji-0003us-Oo; Fri, 27 Aug 2010 09:56:34 +0100 Original-Received: from mx1.cs.bham.ac.uk ([147.188.192.53]) by bham.ac.uk with esmtp (Exim 4.43) id 1Oouji-0005Hr-Ew; Fri, 27 Aug 2010 09:56:34 +0100 Original-Received: from gromit.cs.bham.ac.uk ([147.188.193.16] helo=MARUTI.cs.bham.ac.uk) by mx1.cs.bham.ac.uk with esmtp (Exim 4.51) id 1Oouji-00075q-72; Fri, 27 Aug 2010 09:56:34 +0100 Original-Newsgroups: gmane.emacs.devel In-Reply-To: <8D701A9E7D444011925CB68BF0883D2B@us.oracle.com> X-Mailer: VM 8.1.92a under 23.2.1 [EmacsW32 Version 1.58 2010-08-02] (i386-mingw-nt5.1.2600) X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:129286 Archived-At: Drew Adams writes: > #3 is particularly off the wall. (Though it's unclear what you might > mean by "basic commands".) Having a command bound by default does > not prevent anyone from rebinding it to a different key. It is true > that many commands need not be bound by default, but it is also true > that many are not bound by default. There is no problem here that > needs to be solved. Here is a philosophy that one might take. We will bind a few crucial functions to keys because we think they are absolutely essential. Then we will make available a whole bunch of other functions and a whole bunch of free keys, so that you can bind them as they suit you. "Less is more" with this philosophy. The fewer keys you bind, the more free keys you give to the user. Let me give you a concrete instance of the problem I spent some thought on during the last couple of weeks. VM has traditionally had a key binding of `k' to kill-subject, i.e., kill all messages with the same subject as the current one. Most people have used it to kill message threads, because threading didn't work very reliably in the old days, and so, we went by subject. Now, I have improved threading and it works reliably. So, I raised the idea "can we rebind `k' to kill-thread instead of kill-subject?" The answer is, "oh, well, not quite." I can bet that 90% of the users 90% of the time will use kill-thread instead of kill-subject. But I can't simply disregard the remaining 10%. If the old key binding is left alone, then the users will just habitually type `k' and never discover that there is a better function now. If there had not been a built-in key binding for k = kill-subject, and it was merely a suggestion for users to do the binding themselves, I could now simply change the suggestion and let the users suit themselves. Those users who really need kill-subject will keep the old binding and the others will switch over. The whac-a-mole problem is better solved at the usr end than at our end. As a developer, I don't feel possessive about key bindings. I am quite happy to give the users a blank slate and let them do their own key bindings. It is my software that I put my value in. If the key bindings get in the way of my users deriving the best value out of my software, then what purpose has been served? Cheers, Uday