From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.devel Subject: RE: propose adding Icicles to Emacs Date: Sat, 16 Jun 2007 15:29:15 -0700 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1182033043 11337 80.91.229.12 (16 Jun 2007 22:30:43 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 16 Jun 2007 22:30:43 +0000 (UTC) Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jun 17 00:30:41 2007 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.50) id 1Hzgn1-00048V-Gg for ged-emacs-devel@m.gmane.org; Sun, 17 Jun 2007 00:30:39 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hzgn1-0006Ui-1c for ged-emacs-devel@m.gmane.org; Sat, 16 Jun 2007 18:30:39 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Hzgms-0006S0-Qw for emacs-devel@gnu.org; Sat, 16 Jun 2007 18:30:30 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Hzgms-0006Rb-4d for emacs-devel@gnu.org; Sat, 16 Jun 2007 18:30:30 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hzgms-0006RV-0Q for emacs-devel@gnu.org; Sat, 16 Jun 2007 18:30:30 -0400 Original-Received: from rgminet01.oracle.com ([148.87.113.118]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Hzgmq-0005lq-Gb; Sat, 16 Jun 2007 18:30:28 -0400 Original-Received: from rgmgw3.us.oracle.com (rgmgw3.us.oracle.com [138.1.186.112]) by rgminet01.oracle.com (Switch-3.2.4/Switch-3.1.6) with ESMTP id l5GMUPpS011063; Sat, 16 Jun 2007 16:30:26 -0600 Original-Received: from acsmt350.oracle.com (acsmt350.oracle.com [141.146.40.150]) by rgmgw3.us.oracle.com (Switch-3.2.4/Switch-3.1.7) with ESMTP id l5GMUPgn027292; Sat, 16 Jun 2007 16:30:25 -0600 Original-Received: from dhcp-amer-csvpn-gw1-141-144-64-42.vpn.oracle.com by acsmt351.oracle.com with ESMTP id 2922330261182032969; Sat, 16 Jun 2007 15:29:29 -0700 X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) In-reply-to: Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3138 X-Brightmail-Tracker: AAAAAQAAAAI= X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Whitelist: TRUE X-detected-kernel: Linux 2.4-2.6 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:73122 Archived-At: > I don't understand why it makes sense to do completion on regexps. > Would you please explain? This is, in my experience, the single most important (useful) feature that Icicles has to offer. It is way out in front of any other Icicles feature or combination of features in terms of its practical value. The benefits are well documented in the doc I sent you (which is also on the wiki). Two of the basic features of Icicles are (1) cycling among matching candidates and (2) being able to match a regexp, not just a prefix. Icicles started life with #1, but it wasn't until I added #2 that its utility took off. #1 without #2 limits you, in effect, to working with smaller candidate sets. Put conversely, you can make good use of even very large candidate sets if you have regexp (or at least substring) matching. You can sort candidates on the fly, to make cycling more efficient. You can narrow down the set of candidates considerably, especially using multiple match patterns ("progressive completion"). My advice to new Icicles users is to not get in the bad habit of automatic, "drone" cycling, but to instead take advantage of regexp (e.g. substring) matching. Icicles is a different approach to completion, and regexp matching is a large part of that. It doesn't sound like much, if you are not used to it, and it can sound like something that would be overkill or would slow you down, but I can honestly say that I use S-TAB (which is regexp completion) much, much more than TAB, and I'm pretty sure that the same is true for other Icicles users. Please read the doc about this feature, and think about it. Here is a good place to start: http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Apropos_Completions. But you will find that this feature (which I call "apropos completion") is really at the heart of nearly every Icicles feature. That is, when you read about the various features, their doc will nearly always make reference to S-TAB, because each of the features is more useful when combined with regexp matching. Progressive completion (matching multiple patterns, taking the intersection to narrow the candidate set) is a good example of a powerful feature that is dependent on regexp, or at least substring, matching. Icicles search is another. On-the-fly apropos (candidate help) is another. Really, there is not a single Icicles feature I can think of that is not raised to a higher level of utility by regexp matching.