Vim - 在退出之前等待文件语法检查

时间:2015-06-17 21:45:54

标签: macos vim yaml syntastic

我在MacOSX上使用带有scrooloose/syntastic插件的Vim 7.4来编辑YAML文件。

我已将F11映射到:

:wa<CR> 
  • 检查文件的yaml有效性(如果我,它使用node和js-yaml 回想一下)。
  • 我得到任何指示(不完美) 错误可能是。

我还将F12映射到:

:wa<CR>:xa<CR> 

现在对我来说......因为F11会进行js-yaml检查并报告错误,所以F12也应该做同样的事情,因为映射几乎完全相同。

我的问题是,在js-yaml文件检查器返回任何错误之前,Vim将退出。我不知道如何等待js-yaml返回。

有什么建议吗?

在Vim我做了一个快速的“帮助暂停”→无济于事。

1 个答案:

答案 0 :(得分:1)

简单的解决方案是将g:syntastic_check_on_wq设置为1并将 F12 映射到:wqa<CR>

更复杂(但更平滑)的解决方案包括编写缓冲区,然后检查所有缓冲区是否存在合成错误。你需要一些VimL-fu。

另外,请注意,在同时检查多个文件时(在运行:wa时执行此操作),合成效果不会很好。这与Vim API中的限制有关。