sponsor Vim development Vim logo Vim Book Ad

IComplete : IComplete is a C/C++/Java/C# code completion system using the omnifunc framework

 script karma  Rating 119/41, Downloaded by 4720  Comments, bugs, improvements  Vim wiki

created by
Martin Stubenschrott
script type
There is a new vim plugin OmniCppComplete at:
It works better, is easier to setup and is also better maintained, so please use that.

IMPORTANT: I will NOT maintain icomplete in future anymore, if you are interested in improving it, please tell me, and you can take over maintainership.


**** Features ****
- Automatic generation of a tags file for the current source file by building a tree of included files.
- Listing members (also inherited ones) of a class
For QString s; s. only non-static members are suggested, for QString:: only static ones.
- Listing all function signatures of overloading methods
- Recognizes return values of methods.
QWidget w; w.rect().topLeft(). // Lists completions for a QPoint
- Uses the scope of the cursor position
- Recognizes, if you are inside a method-definition and completes also private or protected variables for this class. For a global scope, only public members are suggested.
- Works in both console and graphical vim
- Uses a cache system for increased spead.
- Understands namespaces
- Automatic completions after . and ->


Quick start: press <Ctrl-X><Ctrl-O> at any code position in insert mode.

For more usage information and screenshots or if you want to donate a little bit, then look at:
install details
Make sure you have exuberant-ctags (from http://ctags.sourceforge.net) installed.

After that unpack the .tar.bz2 tarball, an run these commands:

        # ./configure
        # make
        # su
        $ make install

This will install a command line program 'icomplete' to /usr/local/bin/icomplete and copies the actual vim scripts to

If you have vim installed in a different directory, look at the README in the package it explains, how to change these paths.

If it still does not work, try to put these lines in your ~/.vimrc:

autocmd Filetype cpp,c,java,cs set omnifunc=cppcomplete#Complete

Make sure you have a vim version with the autocmd feature enabled, which should be the case in most cases anyway.

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
icomplete-0.5.tar.bz2 0.5 2007-11-01 7.0 Martin Stubenschrott         * IMPORTANT: Last and final release of icomplete, use OmniCppComplete in future
        * autocompletion on . or -> (patch by Sanjaya Karunase)
        * add ability to change name of .icomplete_taglist (Tim Murison)
        * fixed some segfaults (thanks Johannes Winkelmann)
        * cleaned up the doc
icomplete-0.4.tar.bz2 0.4 2006-04-19 7.0 Martin Stubenschrott Apr 19, 2006:
* version 0.4
* completely new namespace support (by Maxime Coste)
* -t option to specify different tags filename (patch by Yuxuan Wang)
* completely new #include file parser, fixes problem of macos which does not understand \\s codes in regexps
* fixes segfault (replaced mmap with fread)
* improved java support
* including a shell script to create a java tags file for system classes
* placeholders work for more than two arguments now (forgot the 'g' in the
substitute command)
* added sys/types.h in parse.h and tree.h which solves compiling under
ip used for rating:

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.