From 22d44ef8754448294833fcbc197defaca355f3b5 Mon Sep 17 00:00:00 2001 From: Barrett Ruth Date: Sat, 25 Jul 2026 10:26:01 -0700 Subject: fix(api): add `lhs` option for keymap deletion --- runtime/lua/vim/keymap.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'runtime/lua/vim/keymap.lua') diff --git a/runtime/lua/vim/keymap.lua b/runtime/lua/vim/keymap.lua index 4b9a32ff8c..8b68b75cf3 100644 --- a/runtime/lua/vim/keymap.lua +++ b/runtime/lua/vim/keymap.lua @@ -119,8 +119,11 @@ end --- --- Remove a mapping from the given buffer. `0` for current. --- @field buf? integer +--- When true, only match {lhs}, not {rhs}. +--- @field lhs? boolean --- Removes a mapping, or removes each (mode, lhs) pair if `lhs` is a list. +--- --- Examples: --- --- ```lua @@ -152,12 +155,14 @@ function keymap.del(modes, lhs, opts) buf = opts.buffer == true and 0 or opts.buffer --[[@as integer?]] end + local api_opts = { lhs = opts.lhs } + for _, m in ipairs(modes) do for _, l in ipairs(lhs) do if buf then - vim.api.nvim_buf_del_keymap(buf, m, l) + vim.api.nvim_buf_del_keymap(buf, m, l, api_opts) else - vim.api.nvim_del_keymap(m, l) + vim.api.nvim_del_keymap(m, l, api_opts) end end end -- cgit