Mercurial > vim
changeset 8808:6b70b9cdebfc v7.4.1692
commit https://github.com/vim/vim/commit/9bd547aca41799605c3a3f83444f6725c2d6eda9
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Apr 1 21:00:48 2016 +0200
patch 7.4.1692
Problem: feedkeys('i', 'x') gets stuck, waits for a character to be typed.
Solution: Behave like ":normal". (Yasuhiro Matsumoto)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 01 Apr 2016 21:15:05 +0200 |
parents | 6b2aa7c200d7 |
children | cf5e575309da |
files | src/eval.c src/testdir/test_feedkeys.vim src/version.c |
diffstat | 3 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -11368,7 +11368,10 @@ f_feedkeys(typval_T *argvars, typval_T * /* Avoid a 1 second delay when the keys start Insert mode. */ msg_scroll = FALSE; + + ++ex_normal_busy; exec_normal(TRUE); + --ex_normal_busy; msg_scroll |= save_msg_scroll; } }
--- a/src/testdir/test_feedkeys.vim +++ b/src/testdir/test_feedkeys.vim @@ -6,5 +6,9 @@ func Test_feedkeys_x_with_empty_string() call assert_equal('', getline('.')) call feedkeys('', 'x') call assert_equal('foo', getline('.')) + + " check it goes back to normal mode immediately. + call feedkeys('i', 'x') + call assert_equal('foo', getline('.')) quit! endfunc