From e8903ba90d51957440e2ca5d7dd0d3cb75096a7b Mon Sep 17 00:00:00 2001 From: MurdeRM3L0DY <> Date: Thu, 19 Jan 2023 21:05:36 +0100 Subject: [PATCH] fix keymap retrigger in operator mode --- lua/lazy/core/handler/keys.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lua/lazy/core/handler/keys.lua b/lua/lazy/core/handler/keys.lua index dd78581..1bbbbfc 100644 --- a/lua/lazy/core/handler/keys.lua +++ b/lua/lazy/core/handler/keys.lua @@ -38,8 +38,10 @@ function M.retrigger(keys) c = type(c) == "number" and vim.fn.nr2char(c) or c pending = pending .. c end + local op = vim.v.operator if op and op ~= "" and vim.api.nvim_get_mode().mode:find("o") then + -- we have to "" to ensure we're in normal mode keys = "" .. op .. keys end local feed = keys .. pending @@ -47,7 +49,16 @@ function M.retrigger(keys) if vim.v.count ~= 0 then feed = vim.v.count .. feed end - vim.api.nvim_input(feed) + + vim.schedule(function() + if op == "c" then + -- offset col + 1 due to "" from insert mode + local row, col = unpack(vim.api.nvim_win_get_cursor(0)) + vim.api.nvim_win_set_cursor(0, { row, col + 1 }) + end + + vim.api.nvim_input(feed) + end) end ---@param value string|LazyKeys