From: "Óscar Fuentes" <ofv@wanadoo.es>
To: emacs-devel@gnu.org
Subject: Re: Why fido, icycles, ido, icomplete
Date: Thu, 07 Nov 2019 19:50:34 +0100 [thread overview]
Message-ID: <87sgmzcyh1.fsf@telefonica.net> (raw)
In-Reply-To: 874kzg3sms.fsf@gmail.com
João Távora <joaotavora@gmail.com> writes:
>> Where can I learn about that completion-styles API?
>
> In the emacs manual, but a lot in lisp/minibuffer.el. Look at how the
> other styles are implemented. Also ask Stefan on this list.
Thanks.
>>> You can also try 'flex' and tell me what you think you are missing from
>>> flx. I don't find flex "unbearably dumb" :-)
>>
>> I have experience with ido's flex and can't compare.
>
> I wasn't talking about ído's flex, which is named
> 'ido-enable-flex-matching'. So we don't lose ourselves, when I say
> 'flex' I am talking about:
>
> (setq completion-styles '(flex))
> (setq completion-category-defaults nil )
I'll try to experiment with emacs -Q and those settings as time permits.
>> flx requires some
>> training but then it is extremely effective. I no longer bother to
>> memorize most keyboard shorcuts, because by just remembering *some* part
>> of the command's name it can be easily invoked through M-x, often with
>> less keypresses (and with much less chording). It is quite effective at
>> discovering new commands, once you have an idea of the naming convention
>> that a package uses. Last, but not least, it is the matching system used
>> by some of the "cool kids" that competes with Emacs (Sublime Text, to
>> name one).
>
> I don't use the "cool kids" stuff, but I do use some completion boxes in
> some other applications with flex matching. I don't see any big
> difference between 'flex' and those.
The likely reason is that those other applications use flex matching or
something that approximates it. On non-technical applications flx can be
problematic because using it without some knowledge about how it works
can bring puzzling results.
>> If you need autocorrection with flx, you are using it wrong.
>
> I don't use flx. I gather it doesn't support autocorrection and neither
> does 'flex'. Great. Or not. Autocorrection is an advanced feature in
> many systems, most prominently Google's. The point there, I think, is
> precisely that you CAN use it wrong, as humans frequently do.
Autocorrection makes little sense when 1) your typical input is tiny
(less that 6 characters) and 2) effective use of the completion style
depends on *not* using words.
[snip]
> I'm looking for your feedback in term of these kinds of statements
>
> "When I use 'flx' on the set X it gives me Y but 'flex' on the same
> set gives me Z"
>
> If we find 'flx's result is more compelling, we can take steps to
> approximate 'flex' to it.
I don't think that's a good idea. Many users are utterly confused by flx
but are quite happy with flex. I'm more interested on adding flx as a
completion style (hence my previous question about the completion-styles
API).
>> instance, with M-x and 20000+ candidates, four letters are almost always
>> enough to put the target on the first 10 candidates. Said that, flx is
>> somewhat forgiving about typos
>
> Yes, but what kind of typos? If I type "complwt", will it ever bring
> "completion" as a match? 'flex' won't.
Neither flx, because "completion" has no `w'. I already mentiond why flx
users do not care much about autocorrection. Now I'll add that flx is
not particularly good (read: superior to other methods) at completing
single words. It shines at completing strings made of multiple words,
tough, as your typical Elisp function/variable name, C++/Java qualified
method, pathname, etc.
next prev parent reply other threads:[~2019-11-07 18:50 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20191106212018.cnddqzlo5rpdhi6s.ref@Ergus>
2019-11-06 21:20 ` Why fido, icycles, ido, icomplete Ergus
2019-11-06 21:30 ` Daniele Nicolodi
2019-11-06 22:27 ` Ergus
2019-11-06 22:03 ` João Távora
2019-11-06 22:39 ` Óscar Fuentes
2019-11-06 22:57 ` João Távora
2019-11-06 23:07 ` Óscar Fuentes
2019-11-07 0:36 ` João Távora
2019-11-07 1:07 ` Óscar Fuentes
2019-11-07 1:21 ` Ergus
2019-11-07 1:51 ` Óscar Fuentes
2019-11-07 10:09 ` João Távora
2019-11-07 18:50 ` Óscar Fuentes [this message]
2019-11-06 23:21 ` Ergus
2019-11-06 23:59 ` Óscar Fuentes
2019-11-07 0:47 ` Ergus
2019-11-07 2:20 ` Óscar Fuentes
2019-11-07 4:59 ` Ergus
2019-11-07 18:26 ` Óscar Fuentes
2019-11-07 14:09 ` Stefan Monnier
2019-11-07 20:35 ` Óscar Fuentes
2019-11-07 21:11 ` Stefan Monnier
2019-11-07 22:18 ` Óscar Fuentes
2019-11-07 22:30 ` Stefan Monnier
2019-11-07 22:34 ` João Távora
2019-11-07 0:27 ` João Távora
2019-11-07 1:09 ` Ergus
2019-11-07 10:39 ` João Távora
2019-11-07 15:00 ` Ergus
2019-11-08 17:54 ` Filipp Gunbin
2019-11-08 18:10 ` Óscar Fuentes
2019-11-08 18:45 ` Nicolas Semrau
2019-11-08 19:12 ` Eli Zaretskii
2019-11-08 21:31 ` Juanma Barranquero
2019-11-08 22:54 ` João Távora
2019-11-08 23:11 ` Ergus
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=87sgmzcyh1.fsf@telefonica.net \
--to=ofv@wanadoo.es \
--cc=emacs-devel@gnu.org \
/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.