From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: storm@cua.dk (Kim F. Storm) Newsgroups: gmane.emacs.devel Subject: Re: [CVS] f7, f8 bound.. Date: 28 Aug 2002 11:33:08 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: <5xhehfe3aj.fsf@kfs2.cua.dk> References: <87lm6xiruh.fsf@computer.localdomain> <5xu1liwmu6.fsf@kfs2.cua.dk> <200208261526.g7QFQX624783@rum.cs.yale.edu> <5xu1lgu1e4.fsf@kfs2.cua.dk> <200208271621.g7RGLNm30516@rum.cs.yale.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1030523572 26725 127.0.0.1 (28 Aug 2002 08:32:52 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 28 Aug 2002 08:32:52 +0000 (UTC) Cc: "Stefan Monnier" , "D. Goel" , 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 17jyFt-0006wq-00 for ; Wed, 28 Aug 2002 10:32:49 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17jylb-0005tI-00 for ; Wed, 28 Aug 2002 11:05:35 +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 17jyHC-0003BY-00; Wed, 28 Aug 2002 04:34:10 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17jyFt-000370-00 for emacs-devel@gnu.org; Wed, 28 Aug 2002 04:32:49 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17jyFr-00036h-00 for emacs-devel@gnu.org; Wed, 28 Aug 2002 04:32:49 -0400 Original-Received: from mail.filanet.dk ([195.215.206.179]) by monty-python.gnu.org with esmtp (Exim 4.10) id 17jyFq-00036a-00; Wed, 28 Aug 2002 04:32:46 -0400 Original-Received: from kfs2.cua.dk.cua.dk (kfs2.local.filanet.dk [192.168.1.182]) by mail.filanet.dk (Postfix) with SMTP id 67B8D7C017; Wed, 28 Aug 2002 08:32:44 +0000 (GMT) Original-To: Miles Bader In-Reply-To: Original-Lines: 81 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50 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:7028 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:7028 Miles Bader writes: > "Stefan Monnier" writes: > > > I.e. I have to hit 4 keys to type C-x (, type the macro, then hit 4 > > > keys to type C-x ), and finally 3 keys to type C-x e for every call of > > > the macro. > > > > Sure. So you bound them to some of the user-reserved function keys. > > Great for you. Don't force it down everybody's throat. > > Yeah, I think this sums it up. Everybody has their favorite customizations, > but please think a little harder before pushing to make them the default. I've thought quite a lot about this. The _main point_ of the new kmacro package is that it is supposed to make keyboard macro _much easier_ to use that the current bindings do. Note that where the old (and still available) bindings use separate commands for ending and calling a keyboard macro, the new bindings merges the ending and calling onto the same key. So kmacro just needs two [function] keys rather than three. > > Maybe some people use keyboard macros very frequently, but I think most use > them just sometimes, and reserving two keys from an extremely limited set is > too much. As those two keys are rather hard to remember, it's likely that > this change won't help the occasional macro-user _at all_. My mission is to convert occasional macro users into frequent macro users ! A trivial example: Let's say I need to tag a ; onto the next four lines in my buffer. I could do this directly: C-e ; C-n C-e ; C-n C-e ; C-n C-e ; That's a total of 18 key strokes counting 4 uses of Ctrl and 4 uses of Shift as key strokes (assuming ; is on a Shifted key and you keep the Ctrl key pressed while typing C-n C-e.) Since this is a repeated task, I should be able to use a keyboard macro for it... let's try it with the old bindings: C-x ( C-e ; C-n C-x ) M-3 C-x e But that's still 18 key strokes [half of which are modifier keys], so it's definitely not worth the trouble. No wonder keyboard macros are not used very much... Ok, to be fair, I (as an expert user) know that if I want to repeat the macro immediately, I could do it with just 16 key strokes like this: C-x ( C-e ; C-n M-4 C-x ) But that's still not really worth it. With the new bindings this is quite different: F3 C-e ; C-n F4 F4 F4 F4 That's just 11 key strokes - of which the last 4 are on the same key - so it more like 8 individual key strokes and a little extra tapping on the last key. And only three modifier keys are used. That's why I'm strongly advocating putting the kmacro commands on easily accessible keys (read: function keys); it really makes using keyboard macros much more efficient for repeating _simple_ tasks. So to Stefan and others: I'm not trying to force things down everybody's throat. I'm providing a default binding which makes a _big_ difference in usability for the average user. If _you_ don't need it or want it ... just rebind it. Oh yeah, you probably already did that, so what's the fuzz all about? ++kfs