From: Drew Adams <drew.adams@oracle.com>
To: Divya Ranjan <divya@subvertising.org>,
"emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: RE: [External] : Re: discoverability, better defaults and which-key in Emacs
Date: Mon, 5 Feb 2024 15:04:43 +0000 [thread overview]
Message-ID: <SJ0PR10MB5488B73E5D6F8878468AABBEF3472@SJ0PR10MB5488.namprd10.prod.outlook.com> (raw)
In-Reply-To: <87eddr5y8i.fsf@subvertising.org>
> > Not to distract, but FYI library `keysee.el' is
> > an alternative to which-key. Less known, some
> > differences, maybe worth checking out.
>
> The dependency on `sortie.el` is actually cumbersome,
Sortie is completely general - independent
of keysee (which depends on it). Sortie
can be used to interactively sort candidates
for any kind of completion.
I think this sorting is important enough for
KeySee that it should require Sortie, not
make its use optional.
Of course, if Emacs already had Sortie or an
equivalent then no explicit requiring would
be needed by KeySee. ;-)
> `keysee.el` implements a totally non-intrusive
> mini-buffer completion for keybinding suggestions.
>
> I remember using `which-key` and implementing
> golden-ratio to my windows, things messed up
> because `which-key` suggestions are in a
> proper window, thus potentially intrusive.
> One can fix this, as a lot of people do but if
> this is to be integrated into core Emacs one
> needs to take care of that.
That's indeed another difference. I'm
likely less aware of all the differences
because I don't use which-key. ;-)
(I don't use KeySee either, in fact. I
use Icicles. KeySee is actually a
reduced-functionality version of Icicles
key completion.)
The main difference from which-key is
no doubt that KeySee completes against
key _names_ (and their command names, as
I mentioned), and not keystrokes
themselves.
This means that you type text to complete
key names, instead of hitting those keys
themselves.
[As a shortcut, `M-q <keystroke>' inserts
the name of <keystroke>, so you can get
almost the same effect as which-key, when
you want that. It would be possible/easy
to even obviate needing to hit `RET', but
I haven't added that option (except in
Icicles).]
KeySee is thus a bit less just-hit-keys
and a bit more of a discover-and-explore
feature.
In particular, this means you can, any
time, fully explore the entire domain of
keys available at that time (current
context).
You can always, for example, _backtrack_,
that is, go back up from wherever you are,
down inside a sequence of prefix keys.
E.g., after getting down into `C-x 4' you
can go back up to completing just `C-x'.
And then you can go back down again, or
down another prefix key's branch (e.g.
`C-x 8'), etc.
You go up by using the always-available
(except at top level) special completion
`..', that is, you type `..' to go back
up from completing a prefix key.
The domain of "keys" available includes
the forest of menu-bar menus. So you can
use KeySee to explore those as well. And
a separate command, `kc-complete-menu-bar'
does _only_ that: complete menu-bar menus.
> Honestly, I believe if we can just add it
> as a part of the customizable UI then it'd
> be great. Just like we have `ido-completion`,
> or the ability to have menu items on the GUI,
> we can add a keybinding completion system
> and put it on the manual. People should
> discover it from Emacs Manual, as they
> discover other things such as customizing
> the UI. Making such features immediately
> visible to the user is a complex problem to
> solve, which can't be solved right away.
> But a feature like this _can_ be implemented
> and should be alongside the discussion on
> discoverability and what 'defaults' Emacs
> should be shipped with.
The use of KeySee features is, and should be,
optional. You turn them on/off using minor
modes.
As for inclusion of KeySee & Sortie in Emacs,
I should say that I don't particularly want
to develop/maintain them in/for Emacs. If
someone wants to do that, they can do so.
They're tiny libraries.
next prev parent reply other threads:[~2024-02-05 15:04 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-31 23:23 discoverability, better defaults and which-key in Emacs Jeremy Bryant
2024-02-01 2:45 ` Po Lu
2024-02-03 13:40 ` Philip Kaludercic
2024-02-04 22:03 ` Dmitry Gutov
2024-02-05 7:11 ` Philip Kaludercic
2024-02-05 15:38 ` Dmitry Gutov
2024-02-05 18:47 ` Philip Kaludercic
2024-02-05 19:17 ` Dmitry Gutov
2024-02-05 19:33 ` Justin Burkett
2024-02-05 23:05 ` Dmitry Gutov
2024-02-06 2:49 ` Justin Burkett
2024-02-06 23:12 ` Dmitry Gutov
2024-02-07 12:35 ` Eli Zaretskii
2024-02-07 18:31 ` Dmitry Gutov
2024-02-07 19:13 ` Eli Zaretskii
2024-02-07 19:51 ` Dmitry Gutov
2024-02-08 1:46 ` Visuwesh
2024-02-08 6:59 ` Eli Zaretskii
2024-02-08 12:18 ` Dmitry Gutov
2024-02-08 13:02 ` Eli Zaretskii
2024-02-08 13:36 ` Dmitry Gutov
2024-02-08 13:52 ` Eli Zaretskii
2024-02-08 14:43 ` Dmitry Gutov
2024-02-08 16:12 ` Dmitry Gutov
2024-02-11 2:17 ` Dmitry Gutov
2024-02-11 2:39 ` Po Lu
2024-02-11 12:30 ` Dmitry Gutov
2024-02-11 6:49 ` Eli Zaretskii
2024-02-11 12:26 ` Dmitry Gutov
2024-02-11 15:00 ` Eli Zaretskii
2024-02-11 20:36 ` Dmitry Gutov
2024-02-08 16:50 ` Eli Zaretskii
2024-02-08 13:41 ` Dmitry Gutov
2024-02-08 13:51 ` Rebinding Fn [Re: discoverability, better defaults and which-key in Emacs] Alan Mackenzie
2024-02-08 13:55 ` Eli Zaretskii
2024-02-08 14:04 ` Alan Mackenzie
2024-02-08 13:25 ` discoverability, better defaults and which-key in Emacs Po Lu
2024-02-08 13:27 ` Dmitry Gutov
2024-02-08 13:36 ` Dmitry Gutov
2024-02-01 7:35 ` Eli Zaretskii
2024-02-01 21:16 ` Jeremy Bryant
2024-02-02 6:43 ` Eli Zaretskii
2024-02-02 7:00 ` Emanuel Berg
2024-02-02 7:43 ` Eli Zaretskii
2024-02-02 15:25 ` [External] : " Drew Adams
2024-02-02 15:53 ` Emanuel Berg
2024-02-02 16:04 ` Emanuel Berg
2024-02-03 11:46 ` Jeremy Bryant
2024-02-03 11:39 ` Jeremy Bryant
2024-02-03 12:12 ` Eli Zaretskii
2024-02-03 14:07 ` Jeremy Bryant
2024-02-03 15:15 ` Eli Zaretskii
2024-02-04 22:18 ` Jeremy Bryant
2024-02-05 12:41 ` Eli Zaretskii
2024-02-03 11:30 ` Jeremy Bryant
2024-02-03 11:36 ` Moving which-key ELPA package into core - " Jeremy Bryant
2024-02-03 16:34 ` Stefan Monnier
2024-02-04 22:12 ` Jeremy Bryant
2024-02-04 23:06 ` Stefan Monnier
2024-02-01 21:17 ` orzodk
2024-02-01 22:24 ` Jeremy Bryant
2024-02-01 23:49 ` orzodk
2024-02-02 6:31 ` Eli Zaretskii
2024-02-02 16:00 ` Howard Melman
2024-02-02 19:24 ` Eli Zaretskii
2024-02-02 19:32 ` tomas
2024-02-02 20:16 ` Howard Melman
2024-02-03 7:25 ` Emanuel Berg
2024-02-03 8:49 ` Eli Zaretskii
2024-02-03 16:58 ` [External] : " Drew Adams
2024-02-04 22:25 ` Jeremy Bryant
2024-02-04 22:55 ` Emanuel Berg
2024-02-05 3:40 ` Emanuel Berg
2024-02-04 23:47 ` Drew Adams
2024-02-05 1:46 ` Emanuel Berg
2024-02-05 3:52 ` Divya Ranjan
2024-02-05 15:04 ` Drew Adams [this message]
2024-02-04 18:34 ` Howard Melman
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=SJ0PR10MB5488B73E5D6F8878468AABBEF3472@SJ0PR10MB5488.namprd10.prod.outlook.com \
--to=drew.adams@oracle.com \
--cc=divya@subvertising.org \
--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.