Subject: bug#47878: Mark outline commands as repeatable

From: Philip Kaludercic <[email-masked]>
Date: Wed, 21 Apr 2021 13:53:28 +0000

Juri Linkov <[email-masked]> writes:

>> This is a suggested extension for repeat-mode. outline-mode, especially
>> outline-minor-mode commands are somewhat inconvenient to access ("C-x @
>> C-<something>" requires me to change modifiers mid-input twice). When
>> repeat-mode is enabled, this would allow me to access all outline keys
>> in just one key-press.
>>
>> One might want to discuss if outline-mode-prefix-map should be directly
>> marked as the repeat-map
>
> Is it possible to get the name of the keymap whose keys were bound to
> and invoked the current command?  If such function exists, then the
> feature of marking the whole keymap as repeatable could be discussed.
>
>> or if a subset should be used. My approach requires less effort
>> but might be more confusing.
>
> Indeed, a subset would be more preferable since it reduces the number
> of keys that users might want to use outside of the repeating sequence,
> e.g. to type C-l to recenter instead of outline-hide-leaves.
>
> To solve this problem the whole set of keys could be split to groups
> of repeatable keymaps:
>
> 1. navigation keymap:
>
> C-c @ C-b       outline-backward-same-level
> C-c @ C-f       outline-forward-same-level
> C-c @ C-n       outline-next-visible-heading
> C-c @ C-p       outline-previous-visible-heading
> C-c @ C-u       outline-up-heading
>
> This would be the most useful keymap to make navigation keys repeatable.
>
> 2. editing keymap:
>
> C-c @ RET       outline-insert-heading
> C-c @ C-v       outline-move-subtree-down
> C-c @ C-^       outline-move-subtree-up
> C-c @ @         outline-mark-subtree
> C-c @ C-<       outline-promote
> C-c @ C->       outline-demote
>
> Only outline-promote/outline-demote and 
> outline-move-subtree-down/outline-move-subtree-up
> could be repeatable.

I am not sure if these two maps are necessarily detached. When I want to
move a few subtrees, it might be natural for me to assume that I can
also move between them without having to invoke C-x @ ... again.

> 3. visibility keymap:
>
> C-c @ C-a       outline-show-all
> C-c @ C-e       outline-show-entry
> C-c @ TAB       outline-show-children
> C-c @ C-k       outline-show-branches
> C-c @ C-s       outline-show-subtree
> C-c @ C-c       outline-hide-entry
> C-c @ C-d       outline-hide-subtree
> C-c @ C-l       outline-hide-leaves
> C-c @ C-o       outline-hide-other
> C-c @ C-q       outline-hide-sublevels
> C-c @ C-t       outline-hide-body
>
> I doubt if these keys need to be repeatable.
> We have new Org-like short keys TAB and S-TAB
> that are more convenient to use in outline-mode
> and in outline-minor-mode.

That makes sense, I just found out about outline-minor-mode-cycle and it
probably does make these keys superfluous for most uses. Removing these
keys seems to also open up a lot of key bindings that would otherwise
maybe annoy users if they are bound in transient maps (especially C-a,
C-e, C-k, C-s, C-c).

-- 
	Philip K.