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

103f1dfb7d

Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Clason 2024-02-15 22:15:10 +01:00
parent 51ea753747
commit a1d977d8eb

View File

@ -227,67 +227,181 @@ noremap q :q<CR>
" Switch to editing (switch off less mode) " Switch to editing (switch off less mode)
map v :silent call <SID>End()<CR> map v :silent call <SID>End()<CR>
fun! s:End() fun! s:End()
set ma set modifiable noreadonly
if exists('s:lz') if exists('s:lz')
let &lz = s:lz let &lz = s:lz
endif endif
if !empty(maparg('h'))
unmap h unmap h
endif
if !empty(maparg('H'))
unmap H unmap H
endif
if !empty(maparg('<Space>'))
unmap <Space> unmap <Space>
endif
if !empty(maparg('<C-V>'))
unmap <C-V> unmap <C-V>
endif
if !empty(maparg('f'))
unmap f unmap f
endif
if !empty(maparg('<C-F>'))
unmap <C-F> unmap <C-F>
endif
if !empty(maparg('z'))
unmap z unmap z
endif
if !empty(maparg('<Esc><Space>'))
unmap <Esc><Space> unmap <Esc><Space>
endif
if !empty(maparg('F'))
unmap F unmap F
endif
if !empty(maparg('d'))
unmap d unmap d
endif
if !empty(maparg('<C-D>'))
unmap <C-D> unmap <C-D>
endif
if !empty(maparg('<CR>'))
unmap <CR> unmap <CR>
endif
if !empty(maparg('<C-N>'))
unmap <C-N> unmap <C-N>
endif
if !empty(maparg('e'))
unmap e unmap e
endif
if !empty(maparg('<C-E>'))
unmap <C-E> unmap <C-E>
endif
if !empty(maparg('j'))
unmap j unmap j
endif
if !empty(maparg('<C-J>'))
unmap <C-J> unmap <C-J>
endif
if !empty(maparg('b'))
unmap b unmap b
endif
if !empty(maparg('<C-B>'))
unmap <C-B> unmap <C-B>
endif
if !empty(maparg('w'))
unmap w unmap w
endif
if !empty(maparg('<Esc>v'))
unmap <Esc>v unmap <Esc>v
endif
if !empty(maparg('u'))
unmap u unmap u
endif
if !empty(maparg('<C-U>'))
unmap <C-U> unmap <C-U>
endif
if !empty(maparg('k'))
unmap k unmap k
endif
if !empty(maparg('y'))
unmap y unmap y
endif
if !empty(maparg('<C-Y>'))
unmap <C-Y> unmap <C-Y>
endif
if !empty(maparg('<C-P>'))
unmap <C-P> unmap <C-P>
endif
if !empty(maparg('<C-K>'))
unmap <C-K> unmap <C-K>
endif
if !empty(maparg('r'))
unmap r unmap r
endif
if !empty(maparg('<C-R>'))
unmap <C-R> unmap <C-R>
endif
if !empty(maparg('R'))
unmap R unmap R
endif
if !empty(maparg('g'))
unmap g unmap g
endif
if !empty(maparg('<'))
unmap < unmap <
endif
if !empty(maparg('<Esc><'))
unmap <Esc>< unmap <Esc><
endif
if !empty(maparg('G'))
unmap G unmap G
endif
if !empty(maparg('>'))
unmap > unmap >
endif
if !empty(maparg('<Esc>>'))
unmap <Esc>> unmap <Esc>>
endif
if !empty(maparg('%'))
unmap % unmap %
endif
if !empty(maparg('p'))
unmap p unmap p
endif
if !empty(maparg('n'))
unmap n unmap n
endif
if !empty(maparg('N'))
unmap N unmap N
endif
if !empty(maparg('q'))
unmap q unmap q
endif
if !empty(maparg('v'))
unmap v unmap v
endif
if !empty(maparg('/'))
unmap / unmap /
endif
if !empty(maparg('?'))
unmap ? unmap ?
endif
if !empty(maparg('<Up>'))
unmap <Up> unmap <Up>
endif
if !empty(maparg('<Down>'))
unmap <Down> unmap <Down>
endif
if !empty(maparg('<PageDown>'))
unmap <PageDown> unmap <PageDown>
endif
if !empty(maparg('<kPageDown>'))
unmap <kPageDown> unmap <kPageDown>
endif
if !empty(maparg('<PageUp>'))
unmap <PageUp> unmap <PageUp>
endif
if !empty(maparg('<kPageUp>'))
unmap <kPageUp> unmap <kPageUp>
endif
if !empty(maparg('<S-Down>'))
unmap <S-Down> unmap <S-Down>
endif
if !empty(maparg('<S-Up>'))
unmap <S-Up> unmap <S-Up>
endif
if !empty(maparg('<Home>'))
unmap <Home> unmap <Home>
endif
if !empty(maparg('<kHome>'))
unmap <kHome> unmap <kHome>
endif
if !empty(maparg('<End>'))
unmap <End> unmap <End>
endif
if !empty(maparg('<kEnd>'))
unmap <kEnd> unmap <kEnd>
endif
endfun endfun
" vim: sw=2 " vim: sw=2