From a1d977d8eb2ac31021f647c79e1cebde1bf5af43 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 15 Feb 2024 22:15:10 +0100 Subject: [PATCH] vim-patch:103f1dfb7df3 runtime(less): reset readonly setting when disabling less mode While at it, also do the unmap only if a specific key has been mapped. There are some keys that are only selectively mapped and it would cause an error if we are trying to unmap such a key (e.g. z when your foldmethod is not manual). fixes: vim/vim#14040 https://github.com/vim/vim/commit/103f1dfb7df350650a5d7caadb0364bd79e9d25b Co-authored-by: Christian Brabandt --- runtime/macros/less.vim | 230 ++++++++++++++++++++++++++++++---------- 1 file changed, 172 insertions(+), 58 deletions(-) diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim index c99c636e59..457ea2125c 100644 --- a/runtime/macros/less.vim +++ b/runtime/macros/less.vim @@ -227,67 +227,181 @@ noremap q :q " Switch to editing (switch off less mode) map v :silent call End() fun! s:End() - set ma + set modifiable noreadonly if exists('s:lz') let &lz = s:lz endif - unmap h - unmap H - unmap - unmap - unmap f - unmap - unmap z - unmap - unmap F - unmap d - unmap - unmap - unmap - unmap e - unmap - unmap j - unmap - unmap b - unmap - unmap w - unmap v - unmap u - unmap - unmap k - unmap y - unmap - unmap - unmap - unmap r - unmap - unmap R - unmap g - unmap < - unmap < - unmap G - unmap > - unmap > - unmap % - unmap p - unmap n - unmap N - unmap q - unmap v - unmap / - unmap ? - unmap - unmap - unmap - unmap - unmap - unmap - unmap - unmap - unmap - unmap - unmap - unmap + if !empty(maparg('h')) + unmap h + endif + if !empty(maparg('H')) + unmap H + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('f')) + unmap f + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('z')) + unmap z + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('F')) + unmap F + endif + if !empty(maparg('d')) + unmap d + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('e')) + unmap e + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('j')) + unmap j + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('b')) + unmap b + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('w')) + unmap w + endif + if !empty(maparg('v')) + unmap v + endif + if !empty(maparg('u')) + unmap u + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('k')) + unmap k + endif + if !empty(maparg('y')) + unmap y + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('r')) + unmap r + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('R')) + unmap R + endif + if !empty(maparg('g')) + unmap g + endif + if !empty(maparg('<')) + unmap < + endif + if !empty(maparg('<')) + unmap < + endif + if !empty(maparg('G')) + unmap G + endif + if !empty(maparg('>')) + unmap > + endif + if !empty(maparg('>')) + unmap > + endif + if !empty(maparg('%')) + unmap % + endif + if !empty(maparg('p')) + unmap p + endif + if !empty(maparg('n')) + unmap n + endif + if !empty(maparg('N')) + unmap N + endif + if !empty(maparg('q')) + unmap q + endif + if !empty(maparg('v')) + unmap v + endif + if !empty(maparg('/')) + unmap / + endif + if !empty(maparg('?')) + unmap ? + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif + if !empty(maparg('')) + unmap + endif endfun " vim: sw=2