summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorChristian Brabandt <cb@256bit.org>2024-02-15 21:44:05 +0100
committerChristian Brabandt <cb@256bit.org>2024-02-15 21:44:05 +0100
commit103f1dfb7df350650a5d7caadb0364bd79e9d25b (patch)
treed6023af98e240cd4e1d23359eecaf1499e742a49 /runtime
parent9071ed8107244e0c56a16b77d1c28e975cb21dd2 (diff)
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: #14040 Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'runtime')
-rw-r--r--runtime/macros/less.vim230
1 files changed, 172 insertions, 58 deletions
diff --git a/runtime/macros/less.vim b/runtime/macros/less.vim
index 95a4127961..9ee6689e25 100644
--- a/runtime/macros/less.vim
+++ b/runtime/macros/less.vim
@@ -227,67 +227,181 @@ noremap q :q<CR>
" Switch to editing (switch off less mode)
map v :silent call <SID>End()<CR>
fun! s:End()
- set ma
+ set modifiable noreadonly
if exists('s:lz')
let &lz = s:lz
endif
- unmap h
- unmap H
- unmap <Space>
- unmap <C-V>
- unmap f
- unmap <C-F>
- unmap z
- unmap <Esc><Space>
- unmap F
- unmap d
- unmap <C-D>
- unmap <CR>
- unmap <C-N>
- unmap e
- unmap <C-E>
- unmap j
- unmap <C-J>
- unmap b
- unmap <C-B>
- unmap w
- unmap <Esc>v
- unmap u
- unmap <C-U>
- unmap k
- unmap y
- unmap <C-Y>
- unmap <C-P>
- unmap <C-K>
- unmap r
- unmap <C-R>
- unmap R
- unmap g
- unmap <
- unmap <Esc><
- unmap G
- unmap >
- unmap <Esc>>
- unmap %
- unmap p
- unmap n
- unmap N
- unmap q
- unmap v
- unmap /
- unmap ?
- unmap <Up>
- unmap <Down>
- unmap <PageDown>
- unmap <kPageDown>
- unmap <PageUp>
- unmap <kPageUp>
- unmap <S-Down>
- unmap <S-Up>
- unmap <Home>
- unmap <kHome>
- unmap <End>
- unmap <kEnd>
+ if !empty(maparg('h'))
+ unmap h
+ endif
+ if !empty(maparg('H'))
+ unmap H
+ endif
+ if !empty(maparg('<Space>'))
+ unmap <Space>
+ endif
+ if !empty(maparg('<C-V>'))
+ unmap <C-V>
+ endif
+ if !empty(maparg('f'))
+ unmap f
+ endif
+ if !empty(maparg('<C-F>'))
+ unmap <C-F>
+ endif
+ if !empty(maparg('z'))
+ unmap z
+ endif
+ if !empty(maparg('<Esc><Space>'))
+ unmap <Esc><Space>
+ endif
+ if !empty(maparg('F'))
+ unmap F
+ endif
+ if !empty(maparg('d'))
+ unmap d
+ endif
+ if !empty(maparg('<C-D>'))
+ unmap <C-D>
+ endif
+ if !empty(maparg('<CR>'))
+ unmap <CR>
+ endif
+ if !empty(maparg('<C-N>'))
+ unmap <C-N>
+ endif
+ if !empty(maparg('e'))
+ unmap e
+ endif
+ if !empty(maparg('<C-E>'))
+ unmap <C-E>
+ endif
+ if !empty(maparg('j'))
+ unmap j
+ endif
+ if !empty(maparg('<C-J>'))
+ unmap <C-J>
+ endif
+ if !empty(maparg('b'))
+ unmap b
+ endif
+ if !empty(maparg('<C-B>'))
+ unmap <C-B>
+ endif
+ if !empty(maparg('w'))
+ unmap w
+ endif
+ if !empty(maparg('<Esc>v'))
+ unmap <Esc>v
+ endif
+ if !empty(maparg('u'))
+ unmap u
+ endif
+ if !empty(maparg('<C-U>'))
+ unmap <C-U>
+ endif
+ if !empty(maparg('k'))
+ unmap k
+ endif
+ if !empty(maparg('y'))
+ unmap y
+ endif
+ if !empty(maparg('<C-Y>'))
+ unmap <C-Y>
+ endif
+ if !empty(maparg('<C-P>'))
+ unmap <C-P>
+ endif
+ if !empty(maparg('<C-K>'))
+ unmap <C-K>
+ endif
+ if !empty(maparg('r'))
+ unmap r
+ endif
+ if !empty(maparg('<C-R>'))
+ unmap <C-R>
+ endif
+ if !empty(maparg('R'))
+ unmap R
+ endif
+ if !empty(maparg('g'))
+ unmap g
+ endif
+ if !empty(maparg('<'))
+ unmap <
+ endif
+ if !empty(maparg('<Esc><'))
+ unmap <Esc><
+ endif
+ if !empty(maparg('G'))
+ unmap G
+ endif
+ if !empty(maparg('>'))
+ unmap >
+ endif
+ if !empty(maparg('<Esc>>'))
+ unmap <Esc>>
+ 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('<Up>'))
+ unmap <Up>
+ endif
+ if !empty(maparg('<Down>'))
+ unmap <Down>
+ endif
+ if !empty(maparg('<PageDown>'))
+ unmap <PageDown>
+ endif
+ if !empty(maparg('<kPageDown>'))
+ unmap <kPageDown>
+ endif
+ if !empty(maparg('<PageUp>'))
+ unmap <PageUp>
+ endif
+ if !empty(maparg('<kPageUp>'))
+ unmap <kPageUp>
+ endif
+ if !empty(maparg('<S-Down>'))
+ unmap <S-Down>
+ endif
+ if !empty(maparg('<S-Up>'))
+ unmap <S-Up>
+ endif
+ if !empty(maparg('<Home>'))
+ unmap <Home>
+ endif
+ if !empty(maparg('<kHome>'))
+ unmap <kHome>
+ endif
+ if !empty(maparg('<End>'))
+ unmap <End>
+ endif
+ if !empty(maparg('<kEnd>'))
+ unmap <kEnd>
+ endif
endfun
" vim: sw=2