fix: make <c-;> work again (#2073)

* fix: make <c-;> work again

* fix: also <c-_>
This commit is contained in:
phanium
2024-11-02 12:39:41 +08:00
committed by GitHub
parent 29fb485457
commit 7d4051064c
2 changed files with 4 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ local keymap = {}
---@param keys string ---@param keys string
---@return string ---@return string
keymap.t = function(keys) 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)) return vim.api.nvim_eval(string.format([["\%s"]], match))
end)) end))
end end
@@ -17,7 +17,7 @@ end
---@param keys string ---@param keys string
---@return string ---@return string
keymap.normalize = vim.fn.has('nvim-0.8') == 1 and function(keys) 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. -- Use the \<* notation, which distinguishes <C-J> from <NL>, etc.
return vim.api.nvim_eval(string.format([["\<*%s>"]], match)) return vim.api.nvim_eval(string.format([["\<*%s>"]], match))
end) end)

View File

@@ -16,6 +16,8 @@ describe('keymap', function()
'<C-^>', '<C-^>',
'<C-@>', '<C-@>',
'<C-\\>', '<C-\\>',
'<C-;>',
'<C-_>',
'<Tab>', '<Tab>',
'<S-Tab>', '<S-Tab>',
'<Plug>(example)', '<Plug>(example)',