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: Mon, 2 Aug 2010 15:59:30 +0100 Message-ID: <19542.56658.583000.394397@gargle.gargle.HOWL> References: <19534.1494.627000.357123@gargle.gargle.HOWL> <19537.40472.267000.563053@gargle.gargle.HOWL> <176EDAD3B9E54E39870FA3F84A5DDF3C@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 1280761212 11127 80.91.229.12 (2 Aug 2010 15:00:12 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 2 Aug 2010 15:00:12 +0000 (UTC) Cc: 'Uday S Reddy' , emacs-devel@gnu.org To: "Drew Adams" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Aug 02 17:00:08 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 1OfwUk-0000ek-MQ for ged-emacs-devel@m.gmane.org; Mon, 02 Aug 2010 17:00:03 +0200 Original-Received: from localhost ([127.0.0.1]:40917 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OfwUj-0004Pf-33 for ged-emacs-devel@m.gmane.org; Mon, 02 Aug 2010 11:00:01 -0400 Original-Received: from [140.186.70.92] (port=43728 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OfwUb-0004PX-AZ for emacs-devel@gnu.org; Mon, 02 Aug 2010 10:59:54 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OfwUX-0002Nx-E1 for emacs-devel@gnu.org; Mon, 02 Aug 2010 10:59:51 -0400 Original-Received: from sun60.bham.ac.uk ([147.188.128.137]:54656) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OfwUX-0002NF-5O for emacs-devel@gnu.org; Mon, 02 Aug 2010 10:59:49 -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 1OfwUT-00032o-PS; Mon, 02 Aug 2010 15:59:45 +0100 Original-Received: from mx1.cs.bham.ac.uk ([147.188.192.53]) by bham.ac.uk with esmtp (Exim 4.43) id 1OfwUT-0001Dk-F9; Mon, 02 Aug 2010 15:59:45 +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 1OfwUT-0001C1-Ev; Mon, 02 Aug 2010 15:59:45 +0100 In-Reply-To: <176EDAD3B9E54E39870FA3F84A5DDF3C@us.oracle.com> X-Mailer: VM 8.1.92a under 23.2.1 (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:128122 Archived-At: Drew Adams writes: > I really do not want to go down the rat hole of this thread. But I > will make a couple of comments. Suffice it to say, beyond these > comments, that I agree with those old diehards ;-) who have been > trying to say that this thread is misguided in general. Dear Drew, the point of this thread is to explore possible technical solutions to the problems that have been raised in the previous threads: "emacs learning curve", "efforts to attract more users" etc. Instead of having religious debates about which key bindings are better and which bindings should be used and whether there is any need to change key bindings at all etc., my idea is that, if Emacs provides the right set of technical tools allowing users to rebind keys, then more people will be satisfied. So, this is a *technical* discussion. If people want to continue the religious debates, they can go back to the old threads and extend them. > In many or most cases, the mode's specialized version of a command > does not simply replace that command in all situations or for all > purposes. As I said in my reponse to Tassilo, there is no intent to replace the global search commands. `M-x isearch' is meant to represent a generic operation that will be defined in specific modes like dired (and Buffer menu, VM, Gnus etc.) People that like to type `M-s a C-s' can happily go on typing it. But that doesn't have to be the only way to invoke this function. > Menus. Menus. Menus. Menus are your friend. Menus are an > excellent way to _discover_ features, including command names and > key bindings. Glad we agree on something! > Could discovery be even easier? Yes, IMO. Icicles users have the > equivalent of `apropos' available on the fly every time they use the > minibuffer for anything. Could the menus be improved? Yes. Could > menu access from the keyboard be improved? Yes, IMO (though `tmm' > is OK) - La Carte, especially together with Icicles, gives you > excellent menu access and menu discovery from the keyboard. > > And other improvements are always possible. But Emacs is _better_, > not worse, than most apps wrt command discovery and access. Oh, that self-congratulation again! At least on Windows, you don't need any special libraries to access the stadard menubar by keyboard. If you press the Alt-key once, the menubar gets selected. Then you type keys as follows (in the dired-mode menubar): o - goes to Options o - goes to Operate RET - selects the Operate menu i - goes to Isearch Files RET - selects Isearch Files A Windows developer or Java developer that cares about access would have also associated key strokes with each menu title and menu item. These appear as underscored characters in the menus. For instance, one could have chosen `p' in `Operate' as the selected key stroke. Then typing `p' would have taken you directly to `Operate' without stopping at `Options'. When there are unique key strokes associated with the menu items, no RET character is needed for selection. So, in an accessible Windows application, the above navigation could have been done with 2 keystrokes instead of the 5 that Emacs requires. This is something like 10-15 year old technology. Just open Thunderbird and play with keys to navigate the menus. You will get the idea. Do you still want to claim that Emacs is better than most apps for access? When I talk about associating key strokes with menu items, people here don't even seem to know what I am talking about! > The complaints here about weird Emacs keybindings are surprising to > me, coming from you, Uday, who are familiar with Emacs. They sound > like the superficial comments of a vi'er or someone unfamiliar with > Emacs - someone who has the impression that one is _required_ to use > `M-x a C-s' in order to search. It is trivial to use `M-x', trivial > to use the menu, and trivial to bind a simpler key to something that > you use often. I didn't "complain" about the weird key bindings. I gave the weird bindings as an example to talk about the over-reliance of Emacs on key bindings. Obviously the developers went to the weird keys after all the normal keys were exhausted. But, unless there were idle normal keys, the `remap' idea - proposed by Stefan as a possible solution for local key bindings - is ineffective. At best, it can protect the global key bindings as you go down to modes. But it doesn't help the problem of local key bindings. What I have been arguing for is the idea of abstract commands (a variant of Oscar's "actions"). It is a clean solution, well-understood in programming language theory, and I think it can be made to work for Emacs modes. > Try Icicles and La Carte. You can easily sort items on the fly and > you can easily get to any item, no matter where it is in the menu > tree. Can they match the 3-key stroke access (Alt p i) to "Isearch Files" in the dired menu? > > On second thought, perhaps the menus are not as disorganized as I > > had imagined. I haven't yet begun to use them seriously. > > Please do. You will thank yourself. And you will no doubt file > menu bugs or enhancement requests or provide patches for > improvements. Welcome. I will be quite happy to use menus if the menu items have keystrokes associated with them like on Windows & Java applications. Without that, they are quite inefficient. I will check to see if La Carte and Icicles can help. Cheers, Uday