unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Christian Engels'" <s9chenge@stud.uni-saarland.de>,
	<help-gnu-emacs@gnu.org>
Subject: RE: What completion mechanisms are you using?
Date: Sun, 1 Feb 2009 08:09:14 -0800	[thread overview]
Message-ID: <000a01c98487$6e310ed0$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <200902011252.n11Cqwhc030115@triton.rz.uni-saarland.de>

> > > ask you what extensions you are using and how they help you
> > > to optimize your day to day work.
> > 
> > I'm a big fan icicles. It adds completion for pretty much 
> > any minibuffer related activity you can think of (and then some).
> > I still haven't come close to really utilizing it to it's full
> > potential (but then, with emacs in general that is a rather
> > normal state of affairs for me!)
> > 
> > Features that I use often would include:
> >  * Regex and Fuzzy matching.  These are great when I have a 
> >    general idea what something I'm looking for is named but not
> >    exactly. Also good for exploring possibilities within a
> >    subset of functionality.
> > 
> >  * Saving completion lists to act as de facto file listings for
> >    projects.
> >  
> >  * Using it's completion to enhance the discoverability of emacs
> >    commands for myself.
> 
> At the moment i use ido and icomplete. But icicles seems 
> really nice for completion. The only problem i have is, that 
> it doesn't work well with ido.

Icicles and Ido are incompatible. They use the minibuffer in different ways.
Icicles stays closer to the vanilla Emacs behavior, extending it by using
additional keys.

> Why i want this weird setup is easy. I think ido is perfect 
> for files with the way it shows them to me on selecting and 
> the way you can browse through directories.

You would need to be more specific for me to be helpful about this wrt Icicles.
What do you mean by "shows them to me on selecting"?

If you mean that the file is visited as soon as you type enough characters to
get a match, then you can get similar behavior with Icicles (see links below).

> For example with ido you just have to hit Backspace to go one
> directory up.

Icicles is like vanilla Emacs wrt editing in the minibuffer: Backspace
just back-spaces, etc. To go up a directory, you need to hit 3 keys,
`M-k ..', instead of one. That's the same as vanilla Emacs - Icicles justs adds
a `M-k' binding to clear the minibuffer.

IOW, Icicles does not have separate editing and command modes in the minibuffer.
Like vanilla Emacs, Icicles minibuffer interaction is not modal. Backspace is
always an editing key.

You could of course bind some key in the minibuffer keymaps to go up a
directory.

> So has somebody a clue how i can setup icicles that it gets 
> used for everything except the things ido uses?

As I said, their use of the minibuffer conflicts. This makes them incompatible -
each tries to control the minibuffer UI. Icicles generally plays along with
vanilla Emacs minibuffer bindings; Ido does not.

That said, there are some Icicles options you can use to make some of the
behavior more Ido-like. See:
http://www.emacswiki.org/emacs/Icicles_-_Alternative_Libraries and
http://www.emacswiki.org/emacs/Icicles_-_S-RET

But overall, do not look to reproducing the Ido UI in Icicles. That's a bit like
trying to reproduce vi-like behavior in Emacs: You can do it to some extent, but
an Ido or VI diehard will likely be disappointed with the compromise.

On the other hand, Icicles is compatible with Iswitchb, which is similar to Ido
for buffer-switching.

BTW, someone mentioned Ido's "flex" matching. That is also available with
Icicles (I call it "scatter" matching). You can switch matching methods at any
time by hitting `C-(' or `M-(' in the minibuffer:

* `C-(' cycles between fuzzy and prefix completion (for TAB)
* `M-(' cycles between regexp/substring, scatter (flex), and
  Levenshtein completion (for S-TAB)

HTH.





  reply	other threads:[~2009-02-01 16:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-31 11:06 What completion mechanisms are you using? senny
2009-01-31 11:42 ` Les Harris
2009-02-01  1:30   ` Samuel Wales
2009-02-01 10:06   ` Christian Engels
2009-02-01 12:52   ` Christian Engels
2009-02-01 16:09     ` Drew Adams [this message]
2009-02-01 18:43       ` Christian Engels
     [not found]         ` <002501c984af$d8818580$0200a8c0@us.oracle.com>
2009-02-01 22:43           ` Samuel Wales
2009-02-01 23:33             ` Drew Adams
2009-02-01 23:57               ` Samuel Wales
2009-02-02  0:37               ` Samuel Wales
2009-02-02  0:24           ` Drew Adams
     [not found]           ` <mailman.6468.1233534260.26697.help-gnu-emacs@gnu.org>
2009-02-02  0:41             ` Richard Riley

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to='000a01c98487$6e310ed0$0200a8c0@us.oracle.com' \
    --to=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=s9chenge@stud.uni-saarland.de \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).