emacs-devel
[Top][All Lists]
Advanced

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

RE: transient


From: Drew Adams
Subject: RE: transient
Date: Mon, 18 May 2020 22:38:12 -0700 (PDT)

> >>> I like it very much because it helps see the rationale behind
> >>> keybinding. After a while you get to learn the bindings for the
> >>> commands you use the most and you can easily explore
> >>> new commands.
> 
> ... which-key let's me explore existing bindings with
> no effort.  Type C-x r and wait a second and see all
> the rectangle and register commands. It was great for
> learning the M-s and M-g keymaps when they were added.
> which-key has been very helpful for learning bindings...

FWIW -

Icicles key completion is similar, but there are
notable differences:

1. You can use it on-demand (as well as just
   automatically) - complete only when you want
   to, and without a delay.

2. Because of that you can also use it at top
   level, not just after hitting a prefix key.
   Use it to see what key bindings are available
   in the current context (e.g. active modes).

3. Completion candidates have 2 parts: key and
   command name: `KEY  =  COMMAND'.  You can
   match either or both.  Prefix keys have `...'
   instead of `COMMAND: `PREFIX-KEY  =  ...'.

4. Choosing a candidate with a COMMAND invokes
   it.  Choosing a prefix-key candidate changes
   the set of candidates to its completions.
   E.g., choosing `C-h  =  ...' shows candidates
   such as `f  =  describe-function'.

5. You can filter the current matches, by typing
   input that matches key or command names, or
   both.  You can filter multiple times (multiple
   patterns).  Remove your current pattern from
   the minibuffer and type another one to see a
   different set of matches at the same level
   (same prefix key or top level).

6. When completing a prefix key, the first
   candidate shown is `..', which you can choose
   to go back up a level (completions above that
   prefix key).  Then you can go down another
   prefix key - explore the entire key-sequence
   forest.

7. That forest includes menus, as prefix-key
   candidates (`menu-bar  = ...').  So you can
   explore menus in the same way. [*]

8. You can sort candidates in these ways:

    * local bindings first, then non-local, each
      group in alphabetic order by key name
    * prefix keys first, then non-prefix, again,
      in key-name alphabetic order
    * alphabetic order by command name

   You can cycle among those sort orders anytime,
   using `C-,'.

9. Local bindings are highlighted differently
   from non-local - two faces.  Menus get two
   other faces (local, non-local).

10. You can show full help (`C-h f' help) for
    any candidate, anytime, without ending
    completion.  (Use `C-M-RET' on it.)

11. Being able to match minibuffer input against
   key and command names means that, unlike the
   approach of `which-key' and similar, when
   completing a prefix key you don't just hit
   keys that complete the key sequence, to
   invoke its command.  A workaround for that is
   to hit `M-q' and then hit a key, to insert
   its name in the minibuffer and then choose it.
   E.g., `M-q C-M-f' inserts the text `C-M-f' in
   the minibuffer.
_____

[*] Exploring menu-bar menus this way is one
    step (menu level) at a time, the same as
    exploring other key sequences.  A better way
    to explore menu-bar menus is to use library
    La Carte.  Then you can match menu items or
    submenus directly, at any level.  I.e., you
    can type a single pattern that dives down
    into the menu hierarchy - like file-name
    completion.  (But you can also navigate
    stepwise.)



reply via email to

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