我已经阅读了关于Vim所谓的伟大的omnicompletion的大量博客,但无论我做什么,我都无法令人满意地工作.我花了很多时间才发现我的系统上预装的ctags版本是emacs版本,并且没有--recurse选项,但现在我已经在我的OpenJDK副本上运行了ctags-exuberant尝试使用[Cn]或[Cp]调用它时,Vim会挂起来试图获得某种代码的完成.
我真正想要的就像Eclipse中的代码完成一样; 我喜欢Vim作为编辑器,但Eclipse只是具有开箱即用的额外功能,Vim似乎失败了.带有vi-mode插件的Eclipse对我来说并不是特别有用,而且它有太多的内存和CPU占用任何用途; eclim也不太喜欢我.
任何人都可以建议一种更简单的方法来获得在Vim中实际工作的某种代码完成吗?
这是vim的"JDE"功能: http://www.vim.org/scripts/script.php?script_id=1213 列出的功能之一是"代码完成(适用于java和jsp,taglib,html,xml,xsl,xsd)(需要VIM 7.0) "
这是一个Java自动完成脚本: http://vim.sourceforge.net/scripts/script.php?script_id=1785
这个不是Java,但我发现它非常清晰易懂; 也许它值得一读.这是一个关于为Drupal设置自动完成的方法.自定义AWK脚本为vim构建自动完成字典. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim
祝好运.
我和eclim一起去了:
http://eclim.sourceforge.net/
不久之前,它基本上在后台运行eclipse,然后提供了一个vim插件,让你可以在vim中获得eclipse的所有功能.所以你可以做重构,完成等.如果你不介意在你的系统后台运行一个巨大的eclipse进程,它似乎工作得很好.
我已经在C++中完成了很好的工作(无论如何都比Vis更好),但从来没有运气过java.这些天我倾向于大部分时间使用eclipse但是我在eclipse中使用gvim --remote设置为外部命令,这样我就可以随时将当前缓冲区擦入vim.