fix: some symbols can't be mapped correctly (#2081)

* fix: support , . / symbol binding

* test: add keymap test
This commit is contained in:
Wick
2024-11-30 14:34:44 +08:00
committed by GitHub
parent ed31156aa2
commit ca4d3330d3
2 changed files with 4 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ local keymap = {}
---@param keys string
---@return string
keymap.t = function(keys)
return (string.gsub(keys, "(<[A-Za-z0-9\\%-%[%]%^@;,:_']->)", function(match)
return (string.gsub(keys, "(<[A-Za-z0-9\\%-%[%]%^@;,:_'%./]->)", function(match)
return vim.api.nvim_eval(string.format([["\%s"]], match))
end))
end
@@ -17,7 +17,7 @@ end
---@param keys string
---@return string
keymap.normalize = vim.fn.has('nvim-0.8') == 1 and function(keys)
local t = string.gsub(keys, "<([A-Za-z0-9\\%-%[%]%^@;,:_']-)>", function(match)
local t = string.gsub(keys, "<([A-Za-z0-9\\%-%[%]%^@;,:_'%./]-)>", function(match)
-- Use the \<* notation, which distinguishes <C-J> from <NL>, etc.
return vim.api.nvim_eval(string.format([["\<*%s>"]], match))
end)

View File

@@ -19,6 +19,8 @@ describe('keymap', function()
'<C-;>',
'<C-,>',
'<C-:>',
'<C-.>',
'<C-/>',
'<C-_>',
"<C-'>",
'<Tab>',