vim-patch:8.2.4867: listing of mapping with K_SPECIAL is wrong (#18419)

Problem:    Listing of mapping with K_SPECIAL is wrong.
Solution:   Adjust escaping of special characters. (closes vim/vim#10351)
ac402f4d64

Avoid overshadowing.
Cherry-pick Test_list_mapping() from Vim patches 8.2.{0148,2994}.
Fix rhs_is_noop.
This commit is contained in:
zeertzjq
2022-05-05 07:23:27 +08:00
committed by GitHub
parent 6798f1fab0
commit beb8f48489
3 changed files with 59 additions and 21 deletions

View File

@@ -464,6 +464,40 @@ func Test_list_mappings()
call assert_equal(['n ,n <Nop>'],
\ execute('nmap ,n')->trim()->split("\n"))
" verbose map
call assert_match("\tLast set from .*/test_mapping.vim line \\d\\+$",
\ execute('verbose map ,n')->trim()->split("\n")[1])
" character with K_SPECIAL byte in rhs
nmap foo
call assert_equal(['n foo …'],
\ execute('nmap foo')->trim()->split("\n"))
" modified character with K_SPECIAL byte in rhs
nmap foo <M->
call assert_equal(['n foo <M-…>'],
\ execute('nmap foo')->trim()->split("\n"))
" character with K_SPECIAL byte in lhs
nmapfoo
call assert_equal(['n … foo'],
\ execute('nmap …')->trim()->split("\n"))
" modified character with K_SPECIAL byte in lhs
nmap <M-> foo
call assert_equal(['n <M-…> foo'],
\ execute('nmap <M-…>')->trim()->split("\n"))
" map to CTRL-V
exe "nmap ,k \<C-V>"
call assert_equal(['n ,k <Nop>'],
\ execute('nmap ,k')->trim()->split("\n"))
" map with space at the beginning
exe "nmap \<C-V> w <Nop>"
call assert_equal(['n <Space>w <Nop>'],
\ execute("nmap \<C-V> w")->trim()->split("\n"))
nmapclear
endfunc