Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vim omnicompletion for Java

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 [C-n] or [C-p].

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?

like image 959
Robbie Avatar asked Oct 21 '09 14:10

Robbie


People also ask

How do I use Vim Omni completion?

To use omni completion, type <C-X><C-O> while open in Insert mode. If matching names are found, a pop-up menu opens which can be navigated using the <C-N> and <C-P> keys.

How do I autocomplete in Vim?

document. and press *Ctrl + x* followed by *Ctrl + o* to see the auto-complete suggestions as below. This is how you can enable and use the auto-complete feature of Vim editor to write Javascript programs.


2 Answers

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.

like image 135
steveha Avatar answered Sep 29 '22 02:09

steveha


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.

like image 43
Benj Avatar answered Sep 29 '22 04:09

Benj