diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/state.c | 4 | ||||
| -rw-r--r-- | src/nvim/testdir/test_functions.vim | 12 | 
2 files changed, 16 insertions, 0 deletions
diff --git a/src/nvim/state.c b/src/nvim/state.c index bfd73050c3..e6eeaac8d0 100644 --- a/src/nvim/state.c +++ b/src/nvim/state.c @@ -162,6 +162,10 @@ char *get_mode(void)        buf[1] = 'o';        // to be able to detect force-linewise/blockwise/characterwise operations        buf[2] = (char)motion_force; +    } else if (restart_edit == 'I' || restart_edit == 'R' +               || restart_edit == 'V') { +      buf[1] = 'i'; +      buf[2] = (char)restart_edit;      }    } diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim index 7dc9f31ce7..bfe13d6b2d 100644 --- a/src/nvim/testdir/test_functions.vim +++ b/src/nvim/testdir/test_functions.vim @@ -556,6 +556,18 @@ func Test_mode()    call assert_equal('n', mode(0))    call assert_equal('n', mode(1)) +  " i_CTRL-O +  exe "normal i\<C-O>:call Save_mode()\<Cr>\<Esc>" +  call assert_equal("n-niI", g:current_modes) + +  " R_CTRL-O +  exe "normal R\<C-O>:call Save_mode()\<Cr>\<Esc>" +  call assert_equal("n-niR", g:current_modes) + +  " gR_CTRL-O +  exe "normal gR\<C-O>:call Save_mode()\<Cr>\<Esc>" +  call assert_equal("n-niV", g:current_modes) +    " How to test operator-pending mode?    call feedkeys("v", 'xt')  | 
