diff --git a/lua/spacevim/api/vim.lua b/lua/spacevim/api/vim.lua index e7db41315..93f61f80c 100644 --- a/lua/spacevim/api/vim.lua +++ b/lua/spacevim/api/vim.lua @@ -1,6 +1,17 @@ local M = {} function M.getchar(...) + if vim.fn.empty(vim.g._spacevim_input_list) == 0 then + local input_list = vim.g._spacevim_input_list + local input_timeout = vim.g._spacevim_input_timeout or 0 + if input_timeout > 0 then + vim.cmd('sleep ' .. input_timeout .. 'm') + end + local char = table.remove(input_list, 1) + vim.g._spacevim_input_list = input_list + return char + + end local status, ret = pcall(vim.fn.getchar, ...) if not status then ret = 3 diff --git a/test/plugin/flygrep.vader b/test/plugin/flygrep.vader index aee9340a0..0d100b417 100644 --- a/test/plugin/flygrep.vader +++ b/test/plugin/flygrep.vader @@ -7,11 +7,12 @@ Execute ( SpaceVim plugin: flygrep ): \ . ')' let g:_spacevim_input_timeout = 0 let lnr = 0 + let current_line = line('.') for line in readfile('Makefile') let lnr += 1 if line =~# 'COVIMERAGE' break endif endfor - AssertEqual lnr, 4 - unlet lnr line + AssertEqual lnr, current_line + unlet lnr line current_line