vim: Allow count and repeat for "r" and "shift-r" action (#13287)

Fixing the "r" action just involved adapting `normal_replace` to replace
multiple characters.

Fixing the "shift-r" command was less straightforward. The bindings for
`vim::BeforeNormal` in replace mode were being overwritten and several
other steps required for action repetition were not performed. Finally,
the cursor adjustment after re-entering normal mode was duplicated
(`vim::BeforeNormal` was now triggered correctly) so I removed the
special case for replace mode.

Release Notes:

- Fixed vim "r" action to accept a count argument
- Fixed vim "shift-r" action to accept a count argument and allow
repetition

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
Benjamin Davies
2024-06-24 09:41:33 -06:00
committed by GitHub
co-authored by Conrad Irwin
parent 77b2da2b42
commit dea928b00c
8 changed files with 109 additions and 10 deletions
@@ -0,0 +1,10 @@
{"Put":{"state":"ˇhello world\n"}}
{"Key":"shift-r"}
{"Key":"-"}
{"Key":"-"}
{"Key":"-"}
{"Key":"escape"}
{"Key":"4"}
{"Key":"l"}
{"Key":"."}
{"Get":{"state":"---lo --ˇ-ld\n","mode":"Normal"}}