在 vim 中退出插入模式时运行编辑器命令

在 vim 中退出插入模式时运行编辑器命令

我想:command在退出插入模式时在 vim 中运行 a 。具体来说,我想:GoFmt在退出插入模式时运行以格式化我的代码。目前它在我保存文件时运行,但有时我想在进行语法检查之前进行格式化(这在我保存文件时发生)。

我当前的解决方案是映射<esc>到,<esc>:GoFmt<enter>但这会破坏箭头键的行为,因为箭头键以转义序列开头。有更好的解决方案吗?

autocmd FileType go imap <esc> <esc>:GoFmt<enter>

答案1

首先,我强烈支持通配符建议去维姆网站...:)

但其次,肯定有更好的解决方案。您可以使用InsertLeave自动命令。只需这样做:

autocommand InsertLeave go GoFmt

优点是这根本不需要任何映射,并且运行命令也更简单,因为GoFmt已经是 ex 命令,所以您不需要:...<cr>.

相关内容