all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Samuel Banya <sbanya@fastmail.com>,
	Emanuel Berg <help-gnu-emacs@gnu.org>
Cc: "'Help-Gnu-Emacs \(help-gnu-emacs@gnu.org\)'" <help-gnu-emacs@gnu.org>
Subject: RE: [External] : Question Regarding Creating A Random Buffer For Keybinding Reminders / Attempt To Do Via A Reminder Hydra
Date: Sun, 17 Apr 2022 16:36:38 +0000	[thread overview]
Message-ID: <SJ0PR10MB54888F89FE073F43B95DCBEAF3F09@SJ0PR10MB5488.namprd10.prod.outlook.com> (raw)
In-Reply-To: <fec26c25-0cb5-408f-8fb4-979cd5328d61@www.fastmail.com>

No doubt someone will point you to `which-key'...
___

As an alternative, I'll point you to key
completion with `keysee.el'.

(Better yet is key completion with Icicles;
Key See is a reduced version, without any
particular completion support/features.)

Key See shows you, at any time, in any
context - including at the top level (i.e.,
not just after a prefix key), the keys that
are currently available, and the commands
they're bound to.  All available keys, any
time.

These are shown in buffer *Completions* as
completion candidates: `KEY  =  COMMAND'.
You can match KEY, or COMMAND, or both,
against minibuffer input to filter the
candidates, and then choose one to invoke.

A prefix-key candidate has `...' as its
COMMAND portion: `PREFIX-KEY  =  ...'.

If you invoke a candidate that's a prefix
key, you're shown all the keys/commands
you can continue with, etc.  Choose a final
candidate to invoke it, or use `C-g' to end
without invoking any command.

Except at the top level, you also have the
candidate `..' (no `KEY  =  COMAND'), which
takes you up a level.

E.g., if you're showing the keys on prefix
key `C-x 4' then `..' takes you up a level
to show you the keys on `C-x'.  Choosing
`..' again then takes you to the top level.

This gives you a dynamic, on-the-fly way
to see _any_ part of the entire forest of
key bindings (including menu-bar menus!).
Explore it up, down, and around - not just
down, down... into a given prefix key.

(`menu-bar' is the name of a prefix key.
Exploring the entire menu-bar hierarchy is
no different from exploring `C-x'.  Just
choose `menu-bar  =  ...' and dig in...)

You can change the candidate sort order on
the fly, using `C-,'.  Sort by key name -
either prefix keys first or local (i.e.,
major-mode) keys first.  Or sort by command
name.

You can configure which keymaps to recognize
for top-level key completion.

You can have key completion kick in only on
demand (by hitting, e.g., `S-TAB) or also
automatically, after a given delay.

Being able to complete also against command
names is an advantage.  Among other things,
it means you can filter (and sort) by
matching parts of command names.  You can
often remember or guess part of a command
name, even if you don't have a clue which
keys might be involved.

Key completion is a good way to learn keys -
it's at your fingertips, either on demand
or automatically.

Being able to match parts of key names and
command names is helpful, but sometimes
you might want to just hit a candidate key
to match it (`which-key' behavior), rather
than type text to match its name (e.g.
"C-x").  You can do that by prefixing the
key with `M-q': `C-q C-x' inserts "C-x".
___

(If you use Icicles then the key completion
you get is more feature-full.  You can
progressively narrow a set of candidates by
matching multiple patterns, show the doc
for candidate keys/commands, etc.

You can perhaps get some such benefit if
you combine `keysee.el' with another
completion "framework" besides Icicles -
dunno.  `keysee.el' is itself independent
of Icicles.)
___

https://www.emacswiki.org/emacs/KeySee

https://www.emacswiki.org/emacs/download/keysee.el



  parent reply	other threads:[~2022-04-17 16:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-17 14:43 Question Regarding Creating A Random Buffer For Keybinding Reminders / Attempt To Do Via A Reminder Hydra Samuel Banya
2022-04-17 15:32 ` Samuel Banya
2022-04-17 16:36 ` Drew Adams [this message]
2022-04-17 18:55 ` Eduardo Ochs
2022-04-28 16:42 ` Samuel Banya

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=SJ0PR10MB54888F89FE073F43B95DCBEAF3F09@SJ0PR10MB5488.namprd10.prod.outlook.com \
    --to=drew.adams@oracle.com \
    --cc=help-gnu-emacs@gnu.org \
    --cc=sbanya@fastmail.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.