vimleeve getChar不';t与:wq一起工作
Vim版本:Vim 8.0 假设我定义了一个需要用户输入的函数,我希望它在vim退出时运行。因此,我在我的vimrc中写道:vimleeve getChar不';t与:wq一起工作,vim,vim-plugin,getchar,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 VimLea
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
退出,它会像一个符咒一样工作,并接受输入的第一个键。如果我选择退出,getchar()似乎不起作用,我需要键入键,然后按enter键
有人知道为什么这只适用于
:wqa
和:q
,而不适用于:wq
?任何解决方法?使用QuitPre
事件都可以满足您的需要。但是我无法解释为什么vimleeve
makegetchar()
需要一个Enter
QuitPre做了一些与我想要的不同的事情-我想在退出vim时运行它,而不是在退出时(如果从一个窗口输入I:q,就会发生这种情况)。