diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index 8f705e2..47f84cd 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -255,7 +255,7 @@ keymap.listen = setmetatable({ misc.set(_G, { 'cmp', 'utils', 'keymap', 'listen', 'run' }, function(id) local definition = keymap.listen.cache:get({ 'definition', id }) if definition.mode == 'c' and vim.fn.getcmdtype() == '=' then - return vim.api.nvim_feedkeys(keymap.t(definition.fallback), 'i', true) + return vim.api.nvim_feedkeys(keymap.t(definition.fallback), 'it', true) end definition.callback( definition.keys, diff --git a/lua/cmp/utils/keymap_spec.lua b/lua/cmp/utils/keymap_spec.lua index 92684f9..8dbc717 100644 --- a/lua/cmp/utils/keymap_spec.lua +++ b/lua/cmp/utils/keymap_spec.lua @@ -84,4 +84,13 @@ describe('keymap', function() end) end) end) + describe('realworld', function() + it('#226', function() + keymap.listen('i', '', function(_, fallback) + fallback() + end) + vim.api.nvim_feedkeys(keymap.t('iaiueoa'), 'tx', true) + assert.are.same({ 'aiueo', 'aiueo' }, vim.api.nvim_buf_get_lines(0, 0, -1, true)) + end) + end) end) diff --git a/lua/cmp/utils/spec.lua b/lua/cmp/utils/spec.lua index cda008d..642b0e5 100644 --- a/lua/cmp/utils/spec.lua +++ b/lua/cmp/utils/spec.lua @@ -9,6 +9,7 @@ spec.before = function() bdelete! enew! setlocal virtualedit=all + setlocal completeopt=menu,menuone,noselect ]]) end