diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-09-22 06:02:48 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-22 06:02:48 +0800 |
commit | e697c1b43dfbeab132fee4149157f7abd08c51a0 (patch) | |
tree | 4fb363d573f9606f7314799e03c6ba9e0f5fd0e1 /src/nvim/normal.c | |
parent | 1d815acd78e5b961302985b80d2b625947902386 (diff) | |
download | rneovim-e697c1b43dfbeab132fee4149157f7abd08c51a0.tar.gz rneovim-e697c1b43dfbeab132fee4149157f7abd08c51a0.tar.bz2 rneovim-e697c1b43dfbeab132fee4149157f7abd08c51a0.zip |
fix(paste): improve repeating of pasted text (#30438)
- Fixes 'autoindent' being applied during redo.
- Makes redoing a large paste significantly faster.
- Stores pasted text in the register being recorded.
Fix #28561
Diffstat (limited to 'src/nvim/normal.c')
-rw-r--r-- | src/nvim/normal.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/nvim/normal.c b/src/nvim/normal.c index b9ce891b49..be9987cc7f 100644 --- a/src/nvim/normal.c +++ b/src/nvim/normal.c @@ -351,6 +351,7 @@ static const struct nv_cmd { { K_F1, nv_help, NV_NCW, 0 }, { K_XF1, nv_help, NV_NCW, 0 }, { K_SELECT, nv_select, 0, 0 }, + { K_PASTE_START, nv_paste, NV_KEEPREG, 0 }, { K_EVENT, nv_event, NV_KEEPREG, 0 }, { K_COMMAND, nv_colon, 0, 0 }, { K_LUA, nv_colon, 0, 0 }, @@ -6593,6 +6594,12 @@ static void nv_open(cmdarg_T *cap) } } +/// Handles K_PASTE_START, repeats pasted text. +static void nv_paste(cmdarg_T *cap) +{ + paste_repeat(cap->count1); +} + /// Handle an arbitrary event in normal mode static void nv_event(cmdarg_T *cap) { |