[Top][All Lists]

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

Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package

From: Yuri Khan
Subject: Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico
Date: Wed, 7 Apr 2021 20:05:51 +0700

On Wed, 7 Apr 2021 at 19:11, Gregory Heytings <gregory@heytings.org> wrote:

> Given that Emacs is primarily keyboard-driven, it seems to me that the
> most efficient way to select an item is, and will always be, to use a
> textual representation of the items in the list to select them.  C-x 8 RET
> does this, you (can) select an unicode character with its name.  For
> example C-x 8 RET inf RET inserts the infinity symbol.  Or course you
> could also navigate through the ~45000 unicode characters to select the
> one you want, but that would be far less efficient.

This is a narrow-minded view. For one, it does not address the use
case, “I know the character I want exists, I vaguely know which script
or block it belongs to, and I will recognize it when I see it, but at
the moment I don’t remember its name or any of its aliases”.

The UI for this case is implemented in, e.g., gucharmap(1). It
consists of a sidebar with a list of filters (mostly scripts or
blocks, choosable from the View menu, but also “All”), a grid of
characters showing the filtered subset, a panel displaying information
on the currently selected character, and a search facility (on Ctrl+F
and Ctrl+G and Ctrl+Shift+G). For convenience, filters can be switched
sequentially by pressing Ctrl+Page Up and Ctrl+Page Down without
moving keyboard focus away from the grid.

You don’t have to navigate linearly through 143859 characters (as of
Unicode 13.0). You choose one of 308 blocks or 154 scripts, and then
have an overview of relevant candidates, of which you choose visually
or spatially (“last time I needed this, it was somewhere in the lower

Another instance of the selection UI is the Open File scenario. In
Emacs, you probably press C-x C-f and then use completing-read for the
file name with directory and consider that the most efficient way. But
I navigate via ‘dired-jump’ (bound to Super-d) and arrow keys and
‘dired-find-file’ (bound to RET) and consider this the most efficient
way for me. Again, in my mind it’s “I know where it is located and
will recognize it on sight, but I don’t want to remember the name of
it or any of its ancestor directories”.

More generally, there is a subset of users who search, and another
subset of users who browse. The latter always get frustrated when the
only UI they are offered is a search engine or a completion-enabled
text entry box.

reply via email to

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