aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-09-03 09:04:58 +0800
committerGitHub <noreply@github.com>2023-09-03 09:04:58 +0800
commit272c4fba8386ccc17706647c6b28fa70f43e1e66 (patch)
tree4bf30b422f686f4bd5a275d1f368de6946ef96c8
parentf30844008bdd313b03a19486159f571a067e68b9 (diff)
downloadrneovim-272c4fba8386ccc17706647c6b28fa70f43e1e66.tar.gz
rneovim-272c4fba8386ccc17706647c6b28fa70f43e1e66.tar.bz2
rneovim-272c4fba8386ccc17706647c6b28fa70f43e1e66.zip
vim-patch:9.0.1852: i_CTRL-O does not reset Select Mode (#24990)
Problem: i_CTRL-O does not reset Select Mode Solution: Reset select mode on CTRL-O in insert mode closes: vim/vim#13001 closes: vim/vim#12115 https://github.com/vim/vim/commit/d69aecf141ff05a645d02f39f1cbf6381ed7d0c0 Co-authored-by: pierreganty <pierreganty@gmail.com> Co-authored-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--src/nvim/edit.c1
-rw-r--r--test/old/testdir/test_selectmode.vim11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 88ed1e6cb4..06eb81be92 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -3579,6 +3579,7 @@ static void ins_insert(int replaceState)
// Pressed CTRL-O in Insert mode.
static void ins_ctrl_o(void)
{
+ restart_VIsual_select = 0;
if (State & VREPLACE_FLAG) {
restart_edit = 'V';
} else if (State & REPLACE_FLAG) {
diff --git a/test/old/testdir/test_selectmode.vim b/test/old/testdir/test_selectmode.vim
index dd341d99d1..59a1deba65 100644
--- a/test/old/testdir/test_selectmode.vim
+++ b/test/old/testdir/test_selectmode.vim
@@ -312,4 +312,15 @@ func Test_selectmode_register()
bw!
endfunc
+func Test_ins_ctrl_o_in_insert_mode_resets_selectmode()
+ new
+ " ctrl-o in insert mode resets restart_VIsual_select
+ call setline(1, 'abcdef')
+ call cursor(1, 1)
+ exe "norm! \<c-v>\<c-g>\<c-o>c\<c-o>\<c-v>\<right>\<right>IABC"
+ call assert_equal('ABCbcdef', getline(1))
+
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab