aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/normal.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-09-22 06:02:48 +0800
committerGitHub <noreply@github.com>2024-09-22 06:02:48 +0800
commite697c1b43dfbeab132fee4149157f7abd08c51a0 (patch)
tree4fb363d573f9606f7314799e03c6ba9e0f5fd0e1 /src/nvim/normal.c
parent1d815acd78e5b961302985b80d2b625947902386 (diff)
downloadrneovim-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.c7
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)
{