GNU bug report logs - #47688
28.0.50; repeat-mode: Make rectangle commands repeatable. Also some misc. queries, comments

Previous Next

Package: emacs;

Reported by: Ramesh Nedunchezian <rameshnedunchezian <at> outlook.com>

Date: Sat, 10 Apr 2021 08:24:02 UTC

Severity: normal

Found in version 28.0.50

Done: Juri Linkov <juri <at> linkov.net>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 47688 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Ramesh Nedunchezian <rameshnedunchezian <at> outlook.com>
Cc: 47688 <at> debbugs.gnu.org
Subject: Re: bug#47688: 28.0.50; repeat-mode: Make rectangle commands
 repeatable. Also some misc. queries, comments
Date: Mon, 12 Apr 2021 19:16:16 +0300
> Could you please add rectangle commands to the repeatable set?

Could you please demonstrate an example of the real key sequences
where repeat-mode could help to greatly reduce the length of
such key sequences.

> This is what I have in my .emacs.  It works reasonably well, except
> for the `x' (- `rectangle-exchange-point-and-mark') key below:
>
> Issue 1:
> --------
>
> In Non-repeat mode,
>
> 1. Press C-x SPC and make a rectangel.
>
> 2. Press C-x C-x 4 or more times.  You will see the cursor jumping
>    between the corners.
>
> With below snippet installed, in repeat-mode, repeat the above
> operations with single key strokes. I am seeing that the 3rd press of
> x gets me out of the repeat loop and inserts the char "x" in the
> buffer.

Thanks for reporting the issue, this is fixed now.

> Issue 2:  A repeat map can provide a custom `:help'-er
> -----------------------------------------------------
>
> This is the message I see in the minibuffer.
>
>     Repeat with c, ESC, w, r, d, k, o, b, C-b, x, C-x, f, C-f, <left>,
>     SPC, <down>, C-n, N, <up>, C-p, <right>, t, y
>
> 1. `ESC' above correpsonds to `M-w' in the repeat map.  The single
>     character `ESC' confused me for some time.  I wonder if the help
>     text could be improved in this case.

I don't know if there is a function that extracts all key sequences
from the keymap.

There is describe-map-tree that prints the keybindings to the output buffer,
but what is needed is a function that just returns a list of key sequences
from the keymap.

> 2. The help text is really really big, and it clutters the echo area.
>
>    It seems that .... Repeatable keys are essentially a poor-man's
>    hydra,
>
>    So, a repeat-map, like the rectangle one below, which has lots of
>    keybindings can set a `:help' attribute on itself.
>    `repeat-post-hook' can then rely on this `:help'-er to provide a
>    help much similar to what the hydra package provides.

A new option is implemented now.

> Issue 3:  A repeat map can take `:keep-pred' (or a `:exit-key') and other properties.
> ----------------------------------------------------------------------------
>
> When looked askance, `repeat-post-hook' is essentially a wrapper
> around `transient-map'.
>
> So, a `repeat-map' can take a `:keep-pred' and `:on-exit' attributes,
> in addition to a `:help' attribute.

We already tried to change the values of set-transient-map arguments,
but such arguments break repeat-map.

> This will obviate the need for the global `repeat-exit-key' i.e., the
> choice of how the map exits should itself be delegated to the repeat
> map. `

The purpose of repeat-exit-key is to avoid the need to add an exit key
to every keymap.

> Suggestion 1:  Provide a macro(?) for creating repeatable commands.
> ------------------------------------------------------------------
>
> Suggestion 2:
> ------------
>
> Provide a defmacro for chained commands.  I am making the suggestion
> here. I will provide details in a separate bug report.

Such convenience macros are better suitable for a separate package like hydra.




This bug report was last modified 4 years and 15 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.