1
0
forked from aniani/vim

patch 8.2.4498: using <Plug> with "noremap" does not work

Problem:    Using <Plug> with "noremap" does not work.
Solution:   Always remap <Plug>. (closes #9879, closes #9789)
This commit is contained in:
Bram Moolenaar
2022-03-03 13:56:24 +00:00
parent 35d8c2010e
commit 1fc34225ac
4 changed files with 43 additions and 2 deletions

View File

@@ -1536,4 +1536,34 @@ func Test_abbreviate_latin1_encoding()
set encoding=utf-8
endfunc
" Test for <Plug> always being mapped, even when used with "noremap".
func Test_plug_remap()
let g:foo = 0
nnoremap <Plug>(Increase_x) <Cmd>let g:foo += 1<CR>
nmap <F2> <Plug>(Increase_x)
nnoremap <F3> <Plug>(Increase_x)
call feedkeys("\<F2>", 'xt')
call assert_equal(1, g:foo)
call feedkeys("\<F3>", 'xt')
call assert_equal(2, g:foo)
nnoremap x <Nop>
nmap <F4> x<Plug>(Increase_x)x
nnoremap <F5> x<Plug>(Increase_x)x
call setline(1, 'Some text')
normal! gg$
call feedkeys("\<F4>", 'xt')
call assert_equal(3, g:foo)
call assert_equal('Some text', getline(1))
call feedkeys("\<F5>", 'xt')
call assert_equal(4, g:foo)
call assert_equal('Some te', getline(1))
nunmap <Plug>(Increase_x)
nunmap <F2>
nunmap <F3>
nunmap <F4>
nunmap <F5>
unlet g:foo
%bw!
endfunc
" vim: shiftwidth=2 sts=2 expandtab