mirror of
https://github.com/neovim/neovim.git
synced 2025-12-16 03:15:39 +00:00
vim-patch:8.2.4861: it is not easy to restore saved mappings
Problem: It is not easy to restore saved mappings.
Solution: Make mapset() accept a dict argument. (Ernie Rael, closes vim/vim#10295)
51d04d16f2
Co-authored-by: Ernie Rael <errael@raelity.com>
This commit is contained in:
36
runtime/lua/vim/_meta/vimfn.lua
generated
36
runtime/lua/vim/_meta/vimfn.lua
generated
@@ -5046,6 +5046,7 @@ function vim.fn.map(expr1, expr2) end
|
||||
--- "lnum" The line number in "sid", zero if unknown.
|
||||
--- "nowait" Do not wait for other, longer mappings.
|
||||
--- (|:map-<nowait>|).
|
||||
--- "abbr" True if this is an |abbreviation|.
|
||||
---
|
||||
--- The dictionary can be used to restore a mapping with
|
||||
--- |mapset()|.
|
||||
@@ -5124,9 +5125,17 @@ function vim.fn.maplist() end
|
||||
--- @return any
|
||||
function vim.fn.mapnew(expr1, expr2) end
|
||||
|
||||
--- Restore a mapping from a dictionary returned by |maparg()|.
|
||||
--- {mode} and {abbr} should be the same as for the call to
|
||||
--- |maparg()|. *E460*
|
||||
--- Restore a mapping from a dictionary, possibly returned by
|
||||
--- |maparg()| or |maplist()|. A buffer mapping, when dict.buffer
|
||||
--- is true, is set on the current buffer; it is up to the caller
|
||||
--- to ensure that the intended buffer is the current buffer. This
|
||||
--- feature allows copying mappings from one buffer to another.
|
||||
--- The dict.mode value may restore a single mapping that covers
|
||||
--- more than one mode, like with mode values of '!', ' ', "nox",
|
||||
--- or 'v'. *E1276*
|
||||
---
|
||||
--- In the first form, {mode} and {abbr} should be the same as
|
||||
--- for the call to |maparg()|. *E460*
|
||||
--- {mode} is used to define the mode in which the mapping is set,
|
||||
--- not the "mode" entry in {dict}.
|
||||
--- Example for saving and restoring a mapping: >vim
|
||||
@@ -5135,12 +5144,25 @@ function vim.fn.mapnew(expr1, expr2) end
|
||||
--- " ...
|
||||
--- call mapset('n', 0, save_map)
|
||||
--- <Note that if you are going to replace a map in several modes,
|
||||
--- e.g. with `:map!`, you need to save the mapping for all of
|
||||
--- them, since they can differ.
|
||||
--- e.g. with `:map!`, you need to save/restore the mapping for
|
||||
--- all of them, when they might differ.
|
||||
---
|
||||
--- In the second form, with {dict} as the only argument, mode
|
||||
--- and abbr are taken from the dict.
|
||||
--- Example: >vim
|
||||
--- let save_maps = maplist()->filter(
|
||||
--- \ {_, m -> m.lhs == 'K'})
|
||||
--- nnoremap K somethingelse
|
||||
--- cnoremap K somethingelse2
|
||||
--- " ...
|
||||
--- unmap K
|
||||
--- for d in save_maps
|
||||
--- call mapset(d)
|
||||
--- endfor
|
||||
---
|
||||
--- @param mode string
|
||||
--- @param abbr any
|
||||
--- @param dict any
|
||||
--- @param abbr? any
|
||||
--- @param dict? any
|
||||
--- @return any
|
||||
function vim.fn.mapset(mode, abbr, dict) end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user