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
unmap h if !empty(maparg('h'))
unmap H unmap h
unmap <Space> endif
unmap <C-V> if !empty(maparg('H'))
unmap f unmap H
unmap <C-F> endif
unmap z if !empty(maparg('<Space>'))
unmap <Esc><Space> unmap <Space>
unmap F endif
unmap d if !empty(maparg('<C-V>'))
unmap <C-D> unmap <C-V>
unmap <CR> endif
unmap <C-N> if !empty(maparg('f'))
unmap e unmap f
unmap <C-E> endif
unmap j if !empty(maparg('<C-F>'))
unmap <C-J> unmap <C-F>
unmap b endif
unmap <C-B> if !empty(maparg('z'))
unmap w unmap z
unmap <Esc>v endif
unmap u if !empty(maparg('<Esc><Space>'))
unmap <C-U> unmap <Esc><Space>
unmap k endif
unmap y if !empty(maparg('F'))
unmap <C-Y> unmap F
unmap <C-P> endif
unmap <C-K> if !empty(maparg('d'))
unmap r unmap d
unmap <C-R> endif
unmap R if !empty(maparg('<C-D>'))
unmap g unmap <C-D>
unmap < endif
unmap <Esc>< if !empty(maparg('<CR>'))
unmap G unmap <CR>
unmap > endif
unmap <Esc>> if !empty(maparg('<C-N>'))
unmap % unmap <C-N>
unmap p endif
unmap n if !empty(maparg('e'))
unmap N unmap e
unmap q endif
unmap v if !empty(maparg('<C-E>'))
unmap / unmap <C-E>
unmap ? endif
unmap <Up> if !empty(maparg('j'))
unmap <Down> unmap j
unmap <PageDown> endif
unmap <kPageDown> if !empty(maparg('<C-J>'))
unmap <PageUp> unmap <C-J>
unmap <kPageUp> endif
unmap <S-Down> if !empty(maparg('b'))
unmap <S-Up> unmap b
unmap <Home> endif
unmap <kHome> if !empty(maparg('<C-B>'))
unmap <End> unmap <C-B>
unmap <kEnd> 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 endfun
" vim: sw=2 " vim: sw=2