From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.help Subject: RE: Info-mode and ido Date: Sun, 30 Mar 2008 18:29:31 -0700 Message-ID: <003f01c892ce$abd5e860$0200a8c0@us.oracle.com> References: <002601c891e8$8afa2a70$0200a8c0@us.oracle.com><000301c89285$188dc8f0$0200a8c0@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: ger.gmane.org 1206927011 28192 80.91.229.12 (31 Mar 2008 01:30:11 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 31 Mar 2008 01:30:11 +0000 (UTC) To: "'William Xu'" , Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Mar 31 03:30:41 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Jg8rA-0001aV-4u for geh-help-gnu-emacs@m.gmane.org; Mon, 31 Mar 2008 03:30:40 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jg8qY-0007t0-6r for geh-help-gnu-emacs@m.gmane.org; Sun, 30 Mar 2008 21:30:02 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Jg8qH-0007si-5E for help-gnu-emacs@gnu.org; Sun, 30 Mar 2008 21:29:45 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Jg8qE-0007sT-Bm for help-gnu-emacs@gnu.org; Sun, 30 Mar 2008 21:29:43 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Jg8qE-0007sQ-6i for help-gnu-emacs@gnu.org; Sun, 30 Mar 2008 21:29:42 -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 1Jg8qD-0006hM-RY for help-gnu-emacs@gnu.org; Sun, 30 Mar 2008 21:29:42 -0400 Original-Received: from rgmgw1.us.oracle.com (rgmgw1.us.oracle.com [138.1.186.110]) by rgminet01.oracle.com (Switch-3.2.4/Switch-3.1.6) with ESMTP id m2V1TasB030358; Sun, 30 Mar 2008 19:29:36 -0600 Original-Received: from acsmt351.oracle.com (acsmt351.oracle.com [141.146.40.151]) by rgmgw1.us.oracle.com (Switch-3.2.4/Switch-3.2.4) with ESMTP id m2UJTukN014022; Sun, 30 Mar 2008 19:29:35 -0600 Original-Received: from inet-141-146-46-1.oracle.com by acsmt350.oracle.com with ESMTP id 3631545451206926950; Sun, 30 Mar 2008 18:29:10 -0700 Original-Received: from dradamslap1 (/141.144.64.157) by bhmail.oracle.com (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 30 Mar 2008 18:29:09 -0700 X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: AciSxSnyImZ3FkDaR8GypOKSUQy5EQAAEu1Q X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 X-Brightmail-Tracker: AAAAAQAAAAI= X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Whitelist: TRUE X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:52870 Archived-At: > Works now. Well, in Info-mode, it looks like basically > the same as original Info-menu command. No, it's not. It's a multi-command. You can cycle among any number of Info nodes, menu-item destinations, or index-entry destinations in the same invocation of `g', `m', or `i'. Use `C-down' or (for substring/regexp matching) `C-next' to cycle. That's why I said it's an Info browser. (Icicles is also an Imenu browser, an apropos browser, a tags browser, a key-sequence browser, a doc-string browser, an options browser, a property-list browser, a search browser, an alist browser,...) The set of candidates you can cycle among is always filtered by whatever input you have typed in the minibuffer, and you can change that input at any time to get a different set of candidates. That is, the set of completions is updated incrementally. If you type `em', then only menu items (or nodes or index entries) matching `em' are candidates. You don't have to visit nodes when you cycle among their names as completion candidates. That is, you need not visit all of those that match your input, in order. This is different from vanilla Emacs cycling, when that is available, as in M-. M-, M-, M-,... or C-s M-p M-p M-p.... Icicles cycling is not blind - you can see all of the candidates at once, and you can skip among them to access only the ones you want. `down' and `next' cycle among matching candidates without acting on them. Then `C-RET' acts on the current candidate. And `C-mouse-2' acts on any candidate you click. You can act on any number of candidates, in any order. RET or `mouse-2' makes a final choice, acts on it, and exits the command. http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Multi-Commands Not only does your current input filter the candidates, but you can use multiple input patterns to filter them. It is easier to combine several simple patterns than to come up with a complex regexp to do the same job. This is progressive completion: http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Progressive_Completion You can at the same time match negatively, to remove candidates that match an input pattern. This is chipping away the non-elephant: http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Nutshell_View#toc10 It is thus easy to tailor a set of completion candidates for a particular set of Info nodes that you are interested in. You can save that set for future use, if you want. That gives you a virtual book, chosen from particular nodes of interest to you. To use such a saved completions set again some other day, just hit a key to retrieve it as the current set, and start visiting whichever nodes you want. You can have as many virtual books (Info themes or threads) as you like. You can do the same thing for any other set of completions - a set of project files, for instance: save it and reuse it later. > For example, I usually would type `m ema TAB RET' to > enter emacs info, this seems same in icicles. That's because Icicles has vanilla Emacs completion as a proper subset. If you don't take advantage of any Icicle features, then you get vanilla Emacs. But you can type a regexp (such as a substring) instead. And all matches are then candidates that you can visit, without leaving `m'. There are many additional advantages to Icicles completion. > If it were ido style, i only need to type `m ema RET' at most, > and if it had some good guess, I can type even less. In ido, you choose without confirming. You can do that in Icicles too, if you prefer, but it is not the default behavior. See http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_S-RET. You are trying to use Icicles as ido, expecting "ido style", without finding out what Icicles is. For a little comparison, see: http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Alternative_Libraries > I especially love ido's "reduce matchings while typing" feature. Icicles does the same thing: it incrementally updates the completion matches (candidates) while you type. It can use ordinary prefix matching, regexp matching, fuzzy matching, or scatter matching (same as ido's "flex" matching). In all cases, the set of candidates is updated incrementally, while you edit your input. This always happens (unless you toggle it off). But you don't see the candidates in the minibuffer, as you do in ido. Icicles is designed to work well even with very large candidate sets - the minibuffer is too small for that. Candidates are available in *Completions*, if you want to see them. By default, *Completions* is shown only on demand (hit TAB or S-TAB), but you can optionally have it appear as soon as Emacs starts reading your input. You might like Icicles or you might not, but don't expect it to be the same as either vanilla Emacs or ido.