Vim:失去焦点时返回命令模式

标签 vim macvim

我喜欢我的 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/

相关文章:

vim - 我在哪里可以找到 vim 详细级别/设置的描述?

html - NERD_Commenter 的不理想评论,评论 javascript 嵌入 html 文件

python - Vim 语法高亮 : highlight `self` python keyword with regex

vim - tComment Vs。 Nerd 评论员

vim - 使所有分屏具有相同宽度的快捷方式?

java - 忽略 vim java 警告

vim - 默认使用 Vim/Ack 搜索整个项目

vim - 为什么离开插入模式会将光标位置向左移动

vim - 在vim中用代码和注释格式化行

vim - 电力线可以在多个缓冲区中显示,但不能在单个缓冲区中显示