我喜欢我的 vim 尽可能频繁地进入命令模式。我认为失去焦点将是实现这一目标的好事件。我发现的一切都是为了避免失去焦点。
我希望它在 macvim 中切换选项卡或 cmd+tabbing 到另一个应用程序时自动返回到 cmd 模式。
最佳答案
以下autocommand将是“明显”的选择。
au FocusLost,TabLeave * stopinsert
不幸的是,它似乎只适用于 TabLeave。 FocusLost 事件正在触发,但由于某种原因 stopinsert命令在 Vim 重新获得焦点后收到按键事件后才会真正生效。
相反,您可以利用 feedkeys和“无论如何都要让我进入正常模式!” key combo :
au FocusLost,TabLeave * call feedkeys("\<C-\>\<C-n>")
唯一的缺点是
feedkeys()
至少需要 Vim 7。不过,这应该没什么大不了的,因为 Vim 7 是在 2006 年发布的。
关于Vim:失去焦点时返回命令模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968548/