From 19bd8c7c9a834e31db1f15cb04635bf44219a7cb Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 21 Oct 2024 20:05:01 +0800 Subject: [PATCH] fix: use \<* notation for keymap.normalize (#2069) Fix https://github.com/hrsh7th/nvim-cmp/pull/1935#issuecomment-2426250159 --- lua/cmp/utils/keymap.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/cmp/utils/keymap.lua b/lua/cmp/utils/keymap.lua index c1196f9..1a78438 100644 --- a/lua/cmp/utils/keymap.lua +++ b/lua/cmp/utils/keymap.lua @@ -17,7 +17,11 @@ end ---@param keys string ---@return string keymap.normalize = vim.fn.has('nvim-0.8') == 1 and function(keys) - return vim.fn.keytrans(keymap.t(keys)) + local t = string.gsub(keys, '<([A-Za-z0-9\\%-%[%]%^@]-)>', function(match) + -- Use the \<* notation, which distinguishes from , etc. + return vim.api.nvim_eval(string.format([["\<*%s>"]], match)) + end) + return vim.fn.keytrans(t) end or function(keys) local normalize_buf = buffer.ensure('cmp.util.keymap.normalize') vim.api.nvim_buf_set_keymap(normalize_buf, 't', keys, '(cmp.utils.keymap.normalize)', {})