help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Info-mode and ido


From: Drew Adams
Subject: RE: Info-mode and ido
Date: Sun, 30 Mar 2008 18:29:31 -0700

> 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.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]