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
?任何解决方法?
答案 0 :(得分:1)
使用KafkaServer
事件会做你想要的。但我无法解释为什么QuitPre
使VimLeave
需要getchar()