diff options
| author | KunMing Xie <qqzz014@gmail.com> | 2018-06-25 04:16:57 +0800 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2018-06-24 22:16:57 +0200 |
| commit | 38fb83585421c45828a4934fc75f7952b2baf116 (patch) | |
| tree | 895110c4cabaedc565cb2e3d458008799f351697 /src/nvim/testdir/test_functions.vim | |
| parent | 83be7cec98713a7a313529b6a0cbadb465800c5c (diff) | |
| download | rneovim-38fb83585421c45828a4934fc75f7952b2baf116.tar.gz rneovim-38fb83585421c45828a4934fc75f7952b2baf116.tar.bz2 rneovim-38fb83585421c45828a4934fc75f7952b2baf116.zip | |
vim-patch:8.0.0548: saving the redo buffer only works one time (#8629)
Problem: Saving the redo buffer only works one time, resulting in the "."
command not working well for a function call inside another
function call. (Ingo Karkat)
Solution: Save the redo buffer at every user function call. (closes vim/vim#1619)
https://github.com/vim/vim/commit/d4863aa99e0527e9505c79cbeafc68a6832200bf
Diffstat (limited to 'src/nvim/testdir/test_functions.vim')
| -rw-r--r-- | src/nvim/testdir/test_functions.vim | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim index 3028f72fec..c59134908c 100644 --- a/src/nvim/testdir/test_functions.vim +++ b/src/nvim/testdir/test_functions.vim @@ -795,3 +795,31 @@ func Test_shellescape() let &shell = save_shell endfunc + +func Test_redo_in_nested_functions() + nnoremap g. :set opfunc=Operator<CR>g@ + function Operator( type, ... ) + let @x = 'XXX' + execute 'normal! g`[' . (a:type ==# 'line' ? 'V' : 'v') . 'g`]' . '"xp' + endfunction + + function! Apply() + 5,6normal! . + endfunction + + new + call setline(1, repeat(['some "quoted" text', 'more "quoted" text'], 3)) + 1normal g.i" + call assert_equal('some "XXX" text', getline(1)) + 3,4normal . + call assert_equal('some "XXX" text', getline(3)) + call assert_equal('more "XXX" text', getline(4)) + call Apply() + call assert_equal('some "XXX" text', getline(5)) + call assert_equal('more "XXX" text', getline(6)) + bwipe! + + nunmap g. + delfunc Operator + delfunc Apply +endfunc |