aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2022-02-27 16:47:55 +0100
committerGitHub <noreply@github.com>2022-02-27 16:47:55 +0100
commitc65d93e60adcacded822f0ad5d539042e600f523 (patch)
treefadf4755797c5f7e56bd73250ef29dbd9a745c94 /runtime
parent243869658e2ecc35b25a37bab59c04eb45231924 (diff)
parentc031e038df8429e14b0aa608aaa77068daa680f0 (diff)
downloadrneovim-c65d93e60adcacded822f0ad5d539042e600f523.tar.gz
rneovim-c65d93e60adcacded822f0ad5d539042e600f523.tar.bz2
rneovim-c65d93e60adcacded822f0ad5d539042e600f523.zip
Merge pull request #16969 from shadmansaleh/enhance/ingore_nore_on_plug_keymaps
feat: ignore nore on <Plug> maps
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/lua.txt4
-rw-r--r--runtime/doc/map.txt3
-rw-r--r--runtime/doc/vim_diff.txt3
-rw-r--r--runtime/lua/vim/keymap.lua6
4 files changed, 10 insertions, 6 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt
index 4ea78c2426..98af84e1cb 100644
--- a/runtime/doc/lua.txt
+++ b/runtime/doc/lua.txt
@@ -2014,9 +2014,7 @@ set({mode}, {lhs}, {rhs}, {opts}) *vim.keymap.set()*
result of Lua expr maps.
• remap: (boolean) Make the mapping recursive.
This is the inverse of the "noremap" option from
- |nvim_set_keymap()|. Default `true` if `lhs` is
- a string starting with `<plug>`
- (case-insensitive), `false` otherwise.
+ |nvim_set_keymap()|. Default `false` .
See also: ~
|nvim_set_keymap()|
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 0a44ee2418..8d5449da0b 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -65,6 +65,9 @@ modes.
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
used to redefine a command.
+ Note: "nore" is ignored for a mapping whose result
+ starts with <Plug>. <Plug> is always remapped even if
+ "nore" is used.
:unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap*
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 5ea6a9c5dd..d7a65756bf 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -442,6 +442,9 @@ Working directory (Vim implemented some of these later than Nvim):
- `getcwd(-1)` is equivalent to `getcwd(-1, 0)` instead of returning the global
working directory. Use `getcwd(-1, -1)` to get the global working directory.
+Mappings:
+- |nore| is ignored for rhs <Plug> mappings. <Plug> mappings are always remapped.
+
==============================================================================
5. Missing legacy features *nvim-features-missing*
diff --git a/runtime/lua/vim/keymap.lua b/runtime/lua/vim/keymap.lua
index d53b790746..df49eff4b6 100644
--- a/runtime/lua/vim/keymap.lua
+++ b/runtime/lua/vim/keymap.lua
@@ -42,7 +42,7 @@ local keymap = {}
--- |nvim_replace_termcodes()| is applied to the result of Lua expr maps.
--- - remap: (boolean) Make the mapping recursive. This is the
--- inverse of the "noremap" option from |nvim_set_keymap()|.
---- Default `true` if `lhs` is a string starting with `<plug>` (case-insensitive), `false` otherwise.
+--- Default `false`.
---@see |nvim_set_keymap()|
function keymap.set(mode, lhs, rhs, opts)
vim.validate {
@@ -66,8 +66,8 @@ function keymap.set(mode, lhs, rhs, opts)
opts.replace_keycodes = nil
if opts.remap == nil then
- -- remap by default on <plug> mappings and don't otherwise.
- opts.noremap = is_rhs_luaref or rhs:lower():match("^<plug>") == nil
+ -- default remap value is false
+ opts.noremap = true
else
-- remaps behavior is opposite of noremap option.
opts.noremap = not opts.remap