aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-08-12 06:41:23 +0800
committerGitHub <noreply@github.com>2023-08-12 06:41:23 +0800
commit8c5d81997e56a72fbb1392846a146cab2eb74b7f (patch)
treec682f6db2d06f87a42625b01da8933dc91af7921 /test
parent8f9c5ee5ef298883e6de1a3a9c73b348b6398404 (diff)
downloadrneovim-8c5d81997e56a72fbb1392846a146cab2eb74b7f.tar.gz
rneovim-8c5d81997e56a72fbb1392846a146cab2eb74b7f.tar.bz2
rneovim-8c5d81997e56a72fbb1392846a146cab2eb74b7f.zip
vim-patch:9.0.1693: Ctrl-Q not handled like Ctrl-V in replace mode (#24669)
Problem: Ctrl-Q not handled like Ctrl-V in replace mode Solution: Handle Ctrl-Q like Ctrl-V closes: vim/vim#12686 closes: vim/vim#12684 https://github.com/vim/vim/commit/2d63e4b3ccc0bb34db21a3c1d024cb114f8c4071 Co-authored-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'test')
-rw-r--r--test/old/testdir/test_normal.vim38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/old/testdir/test_normal.vim b/test/old/testdir/test_normal.vim
index 23baebb78c..c8e78dcf93 100644
--- a/test/old/testdir/test_normal.vim
+++ b/test/old/testdir/test_normal.vim
@@ -4011,4 +4011,42 @@ func Test_normal_j_below_botline()
call StopVimInTerminal(buf)
endfunc
+" Test for r (replace) command with CTRL_V and CTRL_Q
+func Test_normal_r_ctrl_v_cmd()
+ new
+ call append(0, 'This is a simple test: abcd')
+ exe "norm! 1gg$r\<C-V>\<C-V>"
+ call assert_equal(['This is a simple test: abc', ''], getline(1,'$'))
+ exe "norm! 1gg$hr\<C-Q>\<C-Q>"
+ call assert_equal(['This is a simple test: ab', ''], getline(1,'$'))
+ exe "norm! 1gg$2hr\<C-V>x7e"
+ call assert_equal(['This is a simple test: a~', ''], getline(1,'$'))
+ exe "norm! 1gg$3hr\<C-Q>x7e"
+ call assert_equal(['This is a simple test: ~~', ''], getline(1,'$'))
+
+ if &encoding == 'utf-8'
+ exe "norm! 1gg$4hr\<C-V>u20ac"
+ call assert_equal(['This is a simple test:€~~', ''], getline(1,'$'))
+ exe "norm! 1gg$5hr\<C-Q>u20ac"
+ call assert_equal(['This is a simple test€€~~', ''], getline(1,'$'))
+ exe "norm! 1gg0R\<C-V>xff WAS \<esc>"
+ call assert_equal(['ÿ WAS a simple test€€~~', ''], getline(1,'$'))
+ exe "norm! 1gg0elR\<C-Q>xffNOT\<esc>"
+ call assert_equal(['ÿ WASÿNOT simple test€€~~', ''], getline(1,'$'))
+ endif
+
+ call setline(1, 'This is a simple test: abcd')
+ exe "norm! 1gg$gr\<C-V>\<C-V>"
+ call assert_equal(['This is a simple test: abc', ''], getline(1,'$'))
+ exe "norm! 1gg$hgr\<C-Q>\<C-Q>"
+ call assert_equal(['This is a simple test: ab ', ''], getline(1,'$'))
+ exe "norm! 1gg$2hgr\<C-V>x7e"
+ call assert_equal(['This is a simple test: a~ ', ''], getline(1,'$'))
+ exe "norm! 1gg$3hgr\<C-Q>x7e"
+ call assert_equal(['This is a simple test: ~~ ', ''], getline(1,'$'))
+
+ " clean up
+ bw!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab