好的,这不是关于完全编译,但最近我在Vim中发现了:compiler
命令。帮助包含在quickfix文档中,并且正如我所理解的那样,我可以运行:
:compiler perl
选择perl解释器。然后,帮助说:
Perl编译器插件实际上并不编译,而是调用Perl的内部 语法检查功能并解析输出以查找可能的错误,以便您可以 在快速修复模式下纠正它们。
但由于目前还不清楚我应该如何实际运行该程序。即使没有make文件,我也可以运行:make
吗?这对我来说很有意义,因为:
echo &makeprg
返回perl -Wc %
。然而...
在虚假测试程序上执行此操作,仅返回标准错误格式输出,不会打开quickfix窗口。我在这里缺少什么?
答案 0 :(得分:4)
只需使用
打开quickfix窗口即可:copen
使用
导航错误:crew
:cnext
:cprev
请注意,使用非项目 make进行快速修复的常见陷阱(即makeprg变量通常包含当前缓冲区的名称(%
的扩展名))是当焦点在quickfix窗口上时,再次发出:make
将失败,因为quickfix缓冲区没有与之关联的文件名。 也许这可以通过为例如quickfix窗口提供一个人工名称来解决。 vim的Perl编译器模式?
答案 1 :(得分:1)
使用以下代码,F6可以运行perl脚本并显示在quickfix。
func! checkPerlSyntax()
let map = &makeprg
let ef = &errorformat
let exeFile = expand("%:t")
setlocal makeprg=perl
set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
silent make %
copen
let &makeprg = mp
let &errorformat = ef
endfunc
nmap pl :!perl %<.pl<CR>
map <F6> :call checkPerlSyntax()<CR>