views:

972

answers:

4

I've read heaps of blogs on Vim's supposedly great omnicompletion, and yet no matter what I do I can't get it to work satisfactorily. It took me ages to figure discover that the version of ctags that is preinstalled on my system was the emacs one, and didn't have the --recurse option, but now that I've run ctags-exuberant on my copy of the OpenJDK sources to attempt to get some kind of code completion going, Vim hangs whenever I try to invoke it with or .

All I really want is something that works like the code completion in Eclipse; I like Vim as an editor, but Eclipse just has those extra features out-of-the-box which Vim seems to fail with. Eclipse with a vi-mode plugin wasn't particularly useful to me, and it is too much of a memory and CPU hog to be of any use; eclim doesn't quite like me either.

Can anyone suggest a simpler way to get some kind of code completion working in Vim that actually works?

+1  A: 

Here is a "JDE" feature for vim: http://www.vim.org/scripts/script.php?script_id=1213 One of the listed features is "Code completion ( working for java and jsp,taglib,html,xml,xsl,xsd) (VIM 7.0 required) "

And here is a Java autocompletion script: http://vim.sourceforge.net/scripts/script.php?script_id=1785

This one isn't Java, but I found it to be quite clear and understandable; perhaps it might be worth reading. Here is a recipe on setting up autocompletion for Drupal. A custom AWK script builds an autocompletion dictionary for vim. http://www.thingy-ma-jig.co.uk/blog/18-08-2009/drupal-autocomplete-vim

Good luck.

steveha
A: 

Had the same desire, got it fulfilled by using eclim. Works really really well.

tr9sh
A: 

If you like the code completion of eclipse you could try IntelliJ Community Edition (which is free) which is much smarter. IMHO.

I suggest you move on from vi, and use an editor which is designed for Java development. IDEs also support compiling, running, debugging, profiling, refactoring, code analysis, quick fix.

I used vi for a long time and didn't see the point of IDEs but after learning to use them, I don't see why people still use generic editors like vi when there are specialist editors like IDEs which allow you develop better quality code, faster.

Peter Lawrey
IDEs are always missing a good text editor, that is why.
he_the_great
You must have a very different definition of what makes a good text editor. Clearly productivity isn't important for you. ;) I have used vi for more than 20 years, but I would use any of the free editors in preference.
Peter Lawrey
A: 

I had a go with eclim:

http://eclim.sourceforge.net/

A while ago, it basically runs eclipse in the background and then provides a vim plugin which lets you get at all the functionality of eclipse inside vim. So you can do refactoring, completion etc. It seems to work quite well if you don't mind running a huge eclipse process in the background on your system.

I've got completion working quite well in C++ (Better than Vis stud anyway) but never had much luck with java. These days I tend to use eclipse most of the time but I have gvim --remote set up as an external command in eclipse so that I can just wip the current buffer into vim anytime I want.

Benj
By the way, that last para referred to vim's built in omni completion, not eclim.
Benj