好吧,这不是关于完全编译,但最近我:compiler在Vim中发现了命令.帮助包含在quickfix文档中,正如我所理解的那样,我可以运行:
:compiler perl
Run Code Online (Sandbox Code Playgroud)
选择perl解释器.然后,帮助说:
Perl编译器插件实际上没有编译,但调用Perl的内部语法检查功能并解析输出可能的错误,以便您可以在快速修复模式下更正它们.
但由于目前尚不清楚我应该如何实际运行该程序.:make即使没有make文件,我可以运行吗?这对我来说很有意义,因为:
echo &makeprg
Run Code Online (Sandbox Code Playgroud)
退货perl -Wc %.然而…
在虚假测试程序上执行此操作,仅返回标准错误格式输出,不会打开quickfix窗口.我在这里错过了什么?
只需打开快速修复窗口
:copen
Run Code Online (Sandbox Code Playgroud)
导航错误
:crew
:cnext
:cprev
Run Code Online (Sandbox Code Playgroud)
请注意,使用非项目make(即 makeprg 变量通常包含当前缓冲区的名称(扩展%))的快速修复的一个常见陷阱是,当焦点位于快速修复窗口上时,:make再次发出将失败,因为快速修复缓冲区没有与之关联的文件名。也许可以通过在 vim 的 Perl 编译器模式等中为快速修复窗口提供一个人工名称来解决这个问题?