all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'William Xu'" <william.xwl@gmail.com>, <help-gnu-emacs@gnu.org>
Subject: RE: Info-mode and ido
Date: Sun, 30 Mar 2008 18:29:31 -0700	[thread overview]
Message-ID: <003f01c892ce$abd5e860$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <m2lk3zg2ww.fsf@gmail.com>

> 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	other threads:[~2008-03-31  1:29 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-25 11:32 Info-mode and ido William Xu
2008-03-29 22:02 ` Drew Adams
2008-03-30  7:49   ` William Xu
2008-03-30  9:12     ` Peter Dyballa
2008-03-30  9:18       ` William Xu
2008-03-30 16:42         ` Drew Adams
2008-03-30 16:42     ` Drew Adams
2008-03-31  0:20       ` William Xu
2008-03-31  1:29         ` Drew Adams [this message]
2008-03-31  2:40           ` William Xu
2008-03-31  3:34             ` Drew Adams
2008-03-31  4:05               ` William Xu
2008-03-31 17:29                 ` Drew Adams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='003f01c892ce$abd5e860$0200a8c0@us.oracle.com' \
    --to=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=william.xwl@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.