VimLeave getChar无法使用:wq

时间:2018-06-15 01:11:43

标签: vim vim-plugin getchar

Vim版本:vim 8.0

假设我定义了一个需要用户输入的函数,我希望它在vim退出时运行。所以我写在我的vimrc中:

function! OnQuit()
    redraw
    echon "Run quit function? [y/N] "
    let c = nr2char(getchar())
    if c == "y"
        redraw
        echo "yes!"
    endif
endfunction

autocmd VimLeave * call OnQuit()

如果我退出:q:wqa,它就像魅力一样,并接受输入的第一个密钥。如果我:wq退出,则getchar()似乎没有启动,我需要输入密钥然后按回车键。

有谁知道为什么这只适用于:wqa:q而不是:wq?任何解决方法?

1 个答案:

答案 0 :(得分:1)

使用KafkaServer事件会做你想要的。但我无法解释为什么QuitPre使VimLeave需要getchar()