2011-03-11 77 views
5

是否有Vim脚本定期尝试编译/解释我正在处理的代码,并突出显示语法错误?我想指出这些行之间有什么不对劲:Vim语法/编译时错误突出显示

int a = 42 
cout << a << endl; 

这样的事情可以节省我很多时间。我主要在寻找一个Perl语法检查器,但我也对其他语言的类似插件感兴趣。

更新:另一个错误我想它指出:

int a == 42; 
cout << a << endl; 
+0

你可能想要到''make'做你想要的地方,并将一个键映射到它,这样,而不是“定期”,你有“每当我推”或其他。预览窗口中的错误与高亮显示不完全相同,但是它是内置功能。 (对于Perl,您只需要将'makeprg'设置为'perl -c'。) – Cascabel 2011-03-11 16:21:08

+0

我使用了ActiveState的Komodo一段时间。在编辑时出现了指出语法错误的巨大印象。事情并非如此巨大的生产力提升。调试器很整洁(特别是在很远的地方,通过服务器上的CGI脚本)。 – bobbogo 2011-03-11 19:32:11

+0

我会砍死一个解决方案通过自己:)你可以参考[获取与errormarker AsyncCommand工作] [1] [1]:http://stackoverflow.com/q/7963021/108565 – yoco 2011-11-02 06:18:15

回答

6

您可以使用eclim:一旦您的eclim服务器设置好并且正在运行,您可以使用Vim命令:Validate对您的文件运行代码验证。

基本上,它使用eclipse中的可用验证并将其显示在位置列表中的Vim/gVIm中。 (使用:lopen

对于您来说,位置列表包含:

test.cpp|1 col 11 error| Syntax error 
test.cpp|2 col 1 error| Syntax error 

(山坳11对应于缺少;的位置)

默认情况下,验证正在运行的每节省您的时间一个缓冲区。

错误描述并不十分清晰,但一旦找到错误行,您通常很容易发现错误。

1

自动缩进应该这样做。当您使用额外的缩进级别开始新行时,可能意味着您要么进入了新块,要么没有完成语句。

+0

那会解决我的例子,但是有一些编译器发现的错误,例如我刚刚通过回答更新了一个。 – Tim 2011-03-11 07:45:03