在vim中进行动态Java语法检查

时间:2011-11-28 17:57:01

标签: java vim syntax

首先请不要尖叫“使用IDE”。我给了eclipse一个机会,它是......好吧但是我在vim中的速度要比eclipse快得多。

基本上我希望vim可以做的一件事就是eclipse进行语法检查。在eclipse中,如果你有语法错误,那么该行会被赋予一个错误标记,顶部的文件名会显示一些红色的东西,让你知道有错误。我一直试图在vim中得到它。我看过syntastic(没有Java的检查器),但我似乎无法使它工作。所以问题仍然存在......

每次用vim保存文件时,有没有办法检查语法?希望它在状态行中显示,指出有多少错误以及第一个错误在哪一行...

4 个答案:

答案 0 :(得分:8)

我意识到这已经有了一个公认的解决方案,但是vim纯粹主义者可能更喜欢使用Syntastic

它预先配置了许多常见语言,如PHP,Java等。只是想我会留下这个,以防其他人有同样的问题,但不想运行无头eclipse服务器来实现它

答案 1 :(得分:4)

我还没有尝试过它,这可能并且有点过分,但是FYI有Eclim项目试图将Eclipse的功能带到vim。它声称会Java Validation以及更多功能,包括code completioncode correction

答案 2 :(得分:2)

新的JavaComplete插件可以为您提供一些Java支持,包括Java 8。

答案 3 :(得分:0)

我是Java的新手,在尝试了几个IDE之后,我又回到了vim。到目前为止,我对这两个插件有很好的经验

  • javacomplete2 - 提供omnicompletion和许多功能,以自动添加导入语句,生成getter和setter等。
  • Neomake - 处理异步代码检查,在Neovim或Vim 8中使用异步支持(我还没在neovim尝试过这个,但我认为它应该可以工作)

也应该安装一个好的自动完成插件(我的javacomplete2与YouCompleteMe很好地配合使用)

要使这两个工作,我的.vimrc中有以下内容:

augroup java
  au!
  autocmd FileType java setlocal omnifunc=javacomplete#Complete
  autocmd BufReadPost,BufWritePost *.java :NeomakeFile
  # ...
augroup end

在使用Neomake之前,我尝试使用Syntastic进行linting。但是该插件没有异步支持,因此在写完文件后,我必须等待一秒左右才能让我的vim响应。

相关问题