1
0
forked from aniani/vim

patch 9.0.1693: Ctrl-Q not handled like Ctrl-V in replace mode

Problem: Ctrl-Q not handled like Ctrl-V in replace mode
Solution: Handle Ctrl-Q like Ctrl-V

closes: #12686
closes: #12684

Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2023-08-12 00:03:57 +02:00
parent db4fd29063
commit 2d63e4b3cc
3 changed files with 43 additions and 2 deletions

View File

@@ -3998,4 +3998,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