一旦 MacVim 进入后台,有没有办法自动退出插入模式,以便当我回来时它处于正常模式?
我经常更换最前面的应用程序,当我回到 MacVim 时,我发现自己插入了很多“j”和“k”。最好习惯按 ,但这会节省一些笔画,特别是在处理需要大量编辑/刷新的网站时。
答案1
去引用https://stackoverflow.com/questions/2968548/vim-return-to-command-mode-when-focus-is-lost:
以下自动命令将是“显而易见的”选择。
au FocusLost,TabLeave * stopinsert
不幸的是,它似乎只对 TabLeave 正常工作。FocusLost 事件正在触发,但由于某种原因,stopinsert 命令实际上直到 Vim 重新获得焦点后收到键事件后才生效。
相反,您可以利用 feedkeys 和“无论如何都让我进入正常模式!”组合键:
au FocusLost,TabLeave * call feedkeys("\<C-\>\<C-n>")
唯一的缺点是 feedkeys() 至少需要 Vim 7。不过,这不是什么大问题,因为 Vim7 早在 2006 年就发布了。