sponsor Vim development Vim logo Vim Book Ad

VimLite : Make vim as a C/C++ IDE inspired by CodeLite.

 script karma  Rating 203/64, Downloaded by 13214  Comments, bugs, improvements  Vim wiki

created by
script type
- Updated on 2013-05-27
VimLite became videm, please upgrade from this http://www.vim.org/scripts/script.php?script_id=4599

VimLite is a C/C++ IDE.
VimLite consists mainly of the following three modules:
1.Project Manager:
    The project management module is compatible with CodeLite 2.10. It will auto generates makefile for you.
2.Code Completion:
    An enhanced OmniCpp and a VIMCCC plugin.
        OmniCpp support the following completion: namespace, structure, class member, using, using namespace, class template, stl, etc.
        VIMCCC - An Omni cpp code completion plugin which based on libclang.
3.Debugger Integration.
    Gdb integration, by pyclewn.

If you need more features, you can search other plugins.
Such as taglist, tagbar, NERD_commenter, snipmate, etc.

- 2013-01-26
I have implemented auto code completing with c/c++ by libclang, which such as assist plugin of visual studio.
But it requires vim compiled with +clientserver. Unfortunately this feature needs X server, so vim-nox does not support auto code completing.
And updating vim to 7.3.196 or later is strongly recommended. Because patch196 for vim7.3 implement InsertCharPre autocmd.
Run ':h VimLite-CodeCompletion-VIMCCC' for help about VIMCCC.

I just make a patch for vim 7.3 to add a 'noexpand' argument for 'completeopt' option which can work perfect with auto code completing.
Just downloads it in http://code.google.com/p/vimlite/downloads/list.

NOTE1: Currently, VimLite is not stable enough.
NOTE2: Currently, VimLite need Vim 7.3 or later.

Please report bugs here http://code.google.com/p/vimlite/issues/list.

After installation, run ':h VimLite.txt' for help.

Simple User Guide (Chinese):

Screen shots:

VIMCCC On Linux:

VIMCCC On Windows:

1. Improve debugger integration (debugger).
2. Filter symbols which are not include (OmniCpp).
X. Port to Windows.
X. Parse saved file asynchronously (OmniCpp).
X. Move clang code completion to which based on libclang (VIMCCC).
install details
software dependencies:
python-lxml (optional)

On ubuntu 10.04, just run
sudo apt-get install python python-lxml build-essential gdb cscope

On Windows, just installs python 2.x (2.6 or later) and the win32 python package from http://starship.python.net/crew/mhammond/ (for pyclewn)

vim dependencies:
set nocp
filetype plugin on

Installation (Linux):
1. Extract the tar file.
2. Put everything which in vimlite directory to ~/.vimlite, you probably need to create this directory.
    Usually, it's recommended to remove the old version configs which locate in ~/.vimlite/config/.
3. Open VimLite.vba with vim and run :so %
4. If you wish use VIMCCC, install libclang 3.0.
5. Build the parser. Read the 'NOTE99' below.

Installation (Windows 32bit):
1. Extract the tar file.
2. Move vimlite directory to $VIM (for example of mine: C:\Program Files\Vim).
    Usually, it's recommended to remove the old version configs which locate in $VIM/vimlite/config/.
3. Open VimLite.vba with gvim and run :so %
4. Download win32bin.zip and extract it and put all files(exes and dlls) into $VIM\vimlite\bin
5. Add $VIM\vimlite\bin (mine is C:\Program Files\Vim\vimlite\bin) to the environment variable PATH.
6. Install MinGW 4.x. You can download MinGW- in http://code.google.com/p/vimlite/downloads/list.
7. Add bin folder path (mine is D:\MinGW-4.4.1\bin) of MinGW to the environment variable PATH.
8. If you wish use Omni cpp code completion based on libclang, install libclang 3.0.
9. Build the parser. Read the 'NOTE99' below.

NOTE: Cpp headers of MinGW have too many symbols, so VimLite will take so long time to parse and store them, please be patient. Or you can use VIMCCC plugin which based on libclang.

In the following url, there are a libclang.so work on ubuntu 10.04 and a libclang.dll work on xp with Visual Studio 2010 runtime.

Run :VLWorkspaceOpen to start, and press '.' (dot) to work.

NOTE1: The two Omni code completion plugins conflict with other omni cpp plugins, such as omnicppcomplete, clang_complete. You need to disable them before using VimLite.
NOTE2: VIMCCC can works without VimLite, if you wish, put this in your .vimrc: let g:VIMCCC_Enable = 1
NOTE3: VIMCCC will spends more memory to cache cpp source, take care of your memory.

NOTE99: Since VimLite, please build the parser vlctags2 yourself. Download videm-x.y.z.tar.bz2 and read README.txt for installation help.

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
VimLite-882.tar.bz2 2013-01-25 7.3 fanhe - VIMCCC supprts auto popup completing menu now. Need +clientserver feature with vim.
- Added "Parse Workspace (Full, Async)" and "Parse Workspace (Quick, Async)" workspace menu items.
- Improved gtags integration.
- Imporved VLWorkspaceOpen command. Now you can run ':tabnew | VLWorkspaceOpen' to open a new tab to work.
- Fixed a OmniCpp symbols jumping issue.
- Fixed a debugger issue which conflict with tagbar plugin.
VimLite-841.tar.bz2 2012-12-02 7.3 fanhe - Fixed a namespace parsing issue.
- Added <C-p> keymapping for debugger.
- Fixed a VLWFindFiles and VLWFindFilesNoCase issue.
videm-1.0.9.tar.bz2 1.0.9 2012-10-27 7.3 fanhe - Fixed a compilation issue on x86_64 OS.
videm-1.0.8.tar.bz2 1.0.8 2012-10-22 7.3 fanhe - Update README.txt for more information to installation.
VimLite-823.tar.bz2 2012-10-20 7.3 fanhe - Fixed encoding issue of file path.
- Added suffixes setting in "Workspace Settings".
- Added "C and C++ Compile Options" in "Project Settings".
- Removed clang PCH setting.
- Improved project running.
- Added some help info, try it to press <F1> in every setting.
- Fixed some bugs.
VimLite-797.tar.bz2 2012-10-04 7.3 fanhe - Fixed a cscope init issue.
VimLite-793.tar.bz2 2012-10-02 7.3 fanhe - Added ':VLWLocateCurrentFile' command.
- Added 'Editor Options' which locate in 'Workspace Settings... -> Editor -> Editor Options'.
- Added 'g:VimTagsManager_InclAllCondCmplBrch' option.
- Added some debugger variables watching keybindings.
- Added limitation notification, run ':h VimLite-Limitation' for details.
- Improved jumping to Impl/Decl of symbols.
- Improved debugger breakpoints saving.
- Fixed ':VLWBuildAndRunActiveProject' issue.
- Fixed an dead lock issue of parser.
- Redesigned compile and build system. So there are some compatible problems with old settings.

NOTE: This version must run with the latest vlctags2. Download videm-x.y.x.tar.bz2 to install.
win32bin.zip 1.4 2012-10-02 7.0 fanhe Added test.exe.
videm-1.0.8.tar.bz2 1.0.8 2012-10-02 7.3 fanhe - Fixed some memory leak issues.
- Added '-m' option.
VimLite-713.tar.bz2 2012-07-27 7.3 fanhe - OmniCpp: Fixed a decode bug on Windows.
- vimdialog: Change default key of "Goto Next Control" and "Goto Prev Control".
win32bin.zip 1.3 2012-07-26 7.3 fanhe Prerequisite programs on Windows. Add them to PATH environment variable.

- Update vlctags2.exe.
- You'd better compile the latest vlctags2 and replace which on in win32bin.
vlctags2-1.0.7.tar.bz2 1.0.7 2012-07-26 7.3 fanhe Rename ctags58m to vlctags2.
Compile it and copy vlctags to "~/.vimlite/bin".
CxxParser.tar.bz2 1.0 2012-07-26 7.3 fanhe Compile it to generate libCxxParser.so. Read VimLite.txt for help.
VimLite-712.tar.bz2 2012-07-26 7.3 fanhe - VLWorkspace: Added option "Use with Global Setting" and "Prepend Search Scopes" in "Workspace Settings...".
- OmniCpp: Added gnu global symbol database support. Search "g:VLWorkspaceSymbolDatabase" in VimLite.txt help.
- OmniCpp: Added libCxxParser.so support. Search "g:VLOmniCpp_UseLibCxxParser" in VimLite.txt.
- OmniCpp: Modify vlctags_64 to vlctags in 64bit system, so now just compile vlctags2 and copy to ~/.vimlite/bin.
- Others: Fixed a number of bugs.
VimLite-526.tar.bz2 2011-12-21 7.3 fanhe - OmniCpp: Added feature: Parse the saved file asynchronously.
- OmniCpp: Removed 'g:VLWorkspaceNotParseSourceAfterSave' option.
- OmniCpp: Changed default value of g:VLWorkspaceParseFileAfterSave to 1.
- OmniCpp: Improved performance in scanning header.
- VIMCCC: Fixed a terrible bug.
- VIMCCC: VIMCCC can use search paths of Tags Settings.
VimLite-523.tar.bz2 2011-12-20 7.3 fanhe - VIMCCC: Added basic code navigating, run :h VimLite-Options-VIMCCC for more info.
- VIMCCC: Change VIMCCCUpateQuickFix command to VIMCCCQuikcFix.
- Others: Some minor fixings.
VimLite-515.tar.bz2 2011-12-17 7.3 fanhe - VIMCCC: Init added, it is a plugin that support c/c++ code completion based on libclang 3.0.
- VLWorksapce: Fixed some word case issues.
- OmniCpp: Some improvements.
- Others: Clang code completion options have changed, please read VimLite.txt for help to correct.
VimLite-498.tar.bz2 0.8.8b 2011-12-10 7.3 fanhe - VLWorkspace: Added disable files of workspace feature (Try popup menu on file node)
- OmniCpp: Improved __anon containers tags.
- Others: Port to Windows 32bit (experimental, the debugger works badly currently)
VimLite-470.tar.bz2 2011-11-26 7.3 fanhe - OmniCpp: Fixed some anonymous container issue.
- OmniCpp: Fixed scope resolver issue ( //extern "C" { ).
VimLite-460.tar.bz2 0.8.7 2011-11-08 7.3 fanhe - VLWorkspace: Added :VLWOpenIncludeFile command.
- OmniCpp: Fixed TokenizeLines().
- OmniCpp: Added g:VLOmniCpp_GotoDeclarationKey, see help.
- OmniCpp: Added g:VLOmniCpp_GotoImplementationKey, see help.
- OmniCpp: Other improvements.
VimLite-455.tar.bz2 2011-10-27 7.3 fanhe - OmniCpp: Fixed TokenizeLines().
- OmniCpp: Add some tokens replacement to support gnu c++ header 4.6
VimLite-453.tar.bz2 2011-10-26 7.3 fanhe - Omnicpp: Rewrite Tokenizer() with python, so currently Omnicpp will faster.
- Fixed some bugs.
VimLite-442.tar.bz2 0.8.6 2011-10-15 7.3 fanhe - Debugger: Fixed args issue.
- VLWorkspace: Added :VLWFindFiles and :VLWFindFilesNoCase commands.
- VLWorkspace: Added 'Import Files From Directroy...' menu operation.
- VLWorkspace: Fixed C++ STL type replacement initialization when creating a new workspace.
- VLWorkspace: Fixed include paths issue when paring files.
- OmniCpp: Improvement.
- vimdialog: Improvement.
VimLite-430.tar.bz2 0.8.5 2011-10-08 7.3 fanhe NOTE: The '~/.vimlite/config/TagsSettings.conf' file of this version is not compatible with the older one, please backup and delete it.

- VLWorkspace: Fixed 'Workspace Build Configuration' refresh issue.
- VLWorkspace: Fixed global c compile option issue.
- VLWorkspace: Improved popup menu.
- VLWorkspace: Add command 'VLWSwapSourceHeader' to toggle editing source and header.
- VLWorkspace: Change workspace file suffix to 'vlworkspace' and project file suffix to 'vlproject'.
- VLWorkspace: Added 'Batch Build' feature.
- Omnicpp: Fixed 'defaule: { p->|'.
- Omnicpp: Improved 'Types' replacement.
- OmniCpp: Improved class constructor calltips. eg. A::A() : m_data(|) {
- Others: Improved OmniCpp and vimdialog, fixed minor bugs.
VimLite-407.tar.bz2 2011-09-02 7.3 fanhe - OmniCpp: Fix bug: if ( 1 > A.| )
- VLWorkspace: Use gui operation for "Add Existing Files..." if possible.
VimLite-406.tar.bz2 0.8.4 2011-08-16 7.3 fanhe - OmniCpp: Supported initialization calltips: 1. A<B> a(|); 2. A<B> *p = new A<B>(|);
- OmniCpp: Supported macro calltips.
- Improved interaction controls.
VimLite-398.tar.bz2 0.8.3 2011-08-02 7.3 fanhe VLWorkspace: Supported environment variables.
VLWorkspace: Fixed "Worksapce Build Configuration...".
Omnicpp: Fixed "using namespace std; map<string, int>::iterator iter; iter->|"
Omnicpp: Fixed "using namespace std; for(vector<string>::iterator it;;) it->|"
Omnicpp: Fixed synstack() issue.
Omnicpp: Supported 64bit.
VimLite-388.tar.bz2 0.8.2 2011-07-28 7.3 fanhe Fixed toggle breakpoint issue.
Fixed Workspace Build Configuration save issue.
Improved interaction controls.
VimLite-379.tar.bz2 0.8.1 2011-07-21 7.3 fanhe - Fixed starting debugger bug.
- Fixed 'Add a new file...' menu operation bug.
VimLite-375.tar.bz2 0.8.0 2011-07-19 7.3 fanhe - VLWorkspace: Added some keymappings.
- VLWorkspace: Changed all keymapping options name.
- VLWorkspace: Added command 'VLWBuildAndRunActiveProject'.
- VLWorkspace: Added option 'g:VLWorkspaceCscopeContainExternalHeader'.
- VLWorkspace: Added option 'g:VLWorkspaceNotParseSourceAfterSave'.
- Debugger: Added option 'g:VLWDbgSaveBreakpointsInfo'.
- Debugger: Improved 'VLWDbgToggleBp'.
- OmniCpp: Removed dependence 'libwxbase2.8-0'.
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.
Vim at Github