mirror of
https://github.com/neovim/neovim.git
synced 2026-07-22 09:01:45 +00:00
Problem: No test for :registers command.
Solution: Add a test. (Dominique Pelle, closes vim/vim#2880)
7ce551f317
66 lines
1.8 KiB
VimL
66 lines
1.8 KiB
VimL
|
|
func Test_yank_shows_register()
|
|
enew
|
|
set report=0
|
|
call setline(1, ['foo', 'bar'])
|
|
" Line-wise
|
|
exe 'norm! yy'
|
|
call assert_equal('1 line yanked', v:statusmsg)
|
|
exe 'norm! "zyy'
|
|
call assert_equal('1 line yanked into "z', v:statusmsg)
|
|
exe 'norm! yj'
|
|
call assert_equal('2 lines yanked', v:statusmsg)
|
|
exe 'norm! "zyj'
|
|
call assert_equal('2 lines yanked into "z', v:statusmsg)
|
|
|
|
" Block-wise
|
|
exe "norm! \<C-V>y"
|
|
call assert_equal('block of 1 line yanked', v:statusmsg)
|
|
exe "norm! \<C-V>\"zy"
|
|
call assert_equal('block of 1 line yanked into "z', v:statusmsg)
|
|
exe "norm! \<C-V>jy"
|
|
call assert_equal('block of 2 lines yanked', v:statusmsg)
|
|
exe "norm! \<C-V>j\"zy"
|
|
call assert_equal('block of 2 lines yanked into "z', v:statusmsg)
|
|
|
|
bwipe!
|
|
endfunc
|
|
|
|
func Test_display_registers()
|
|
e file1
|
|
e file2
|
|
call setline(1, ['foo', 'bar'])
|
|
/bar
|
|
exe 'norm! y2l"axx'
|
|
call feedkeys("i\<C-R>=2*4\n\<esc>")
|
|
call feedkeys(":ls\n", 'xt')
|
|
|
|
let a = execute('display')
|
|
let b = execute('registers')
|
|
|
|
call assert_equal(a, b)
|
|
call assert_match('^\n--- Registers ---\n'
|
|
\ . '"" a\n'
|
|
\ . '"0 ba\n'
|
|
\ . '"1 b\n'
|
|
\ . '"a b\n'
|
|
\ . '.*'
|
|
\ . '"- a\n'
|
|
\ . '.*'
|
|
\ . '": ls\n'
|
|
\ . '"% file2\n'
|
|
\ . '"# file1\n'
|
|
\ . '"/ bar\n'
|
|
\ . '"= 2\*4', a)
|
|
|
|
let a = execute('registers a')
|
|
call assert_match('^\n--- Registers ---\n'
|
|
\ . '"a b', a)
|
|
|
|
let a = execute('registers :')
|
|
call assert_match('^\n--- Registers ---\n'
|
|
\ . '": ls', a)
|
|
|
|
bwipe!
|
|
endfunc
|