Mercurial > vim
diff src/testdir/test_selectmode.vim @ 27263:93d4ee1e6113 v8.2.4160
patch 8.2.4160: cannot change the register used for Select mode delete
Commit: https://github.com/vim/vim/commit/4ede01f18884961f2e008880b4964e5d61ea5c36
Author: Shougo Matsushita <Shougo.Matsu@gmail.com>
Date: Thu Jan 20 15:26:03 2022 +0000
patch 8.2.4160: cannot change the register used for Select mode delete
Problem: Cannot change the register used for Select mode delete.
Solution: Make CTRL-R set the register to be used when deleting text for
Select mode. (Shougo Matsushita, closes #9531)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 20 Jan 2022 16:30:04 +0100 |
parents | 7a2a737dc6ec |
children | 9c4ee9389bb4 |
line wrap: on
line diff
--- a/src/testdir/test_selectmode.vim +++ b/src/testdir/test_selectmode.vim @@ -258,4 +258,56 @@ func Test_term_mouse_multiple_clicks_to_ bwipe! endfunc +" Test for selecting a register with CTRL-R +func Test_selectmode_register() + new + + " Default behavior: use unnamed register + call setline(1, 'foo') + call setreg('"', 'bar') + call setreg('a', 'baz') + exe ":norm! v\<c-g>a" + call assert_equal(getline('.'), 'aoo') + call assert_equal('f', getreg('"')) + call assert_equal('baz', getreg('a')) + + " Use the black hole register + call setline(1, 'foo') + call setreg('"', 'bar') + call setreg('a', 'baz') + exe ":norm! v\<c-g>\<c-r>_a" + call assert_equal(getline('.'), 'aoo') + call assert_equal('bar', getreg('"')) + call assert_equal('baz', getreg('a')) + + " Invalid register: use unnamed register + call setline(1, 'foo') + call setreg('"', 'bar') + call setreg('a', 'baz') + exe ":norm! v\<c-g>\<c-r>?a" + call assert_equal(getline('.'), 'aoo') + call assert_equal('f', getreg('"')) + call assert_equal('baz', getreg('a')) + + " Use unnamed register + call setline(1, 'foo') + call setreg('"', 'bar') + call setreg('a', 'baz') + exe ":norm! v\<c-g>\<c-r>\"a" + call assert_equal(getline('.'), 'aoo') + call assert_equal('f', getreg('"')) + call assert_equal('baz', getreg('a')) + + " use specicifed register, unnamed register is also written + call setline(1, 'foo') + call setreg('"', 'bar') + call setreg('a', 'baz') + exe ":norm! v\<c-g>\<c-r>aa" + call assert_equal(getline('.'), 'aoo') + call assert_equal('f', getreg('"')) + call assert_equal('f', getreg('a')) + + bw! +endfunc + " vim: shiftwidth=2 sts=2 expandtab