Skip to content

Repository files navigation


!Warning: This project is under active development!

  1. Introduction
  2. Features
    1. Autocompletion
    2. Interface
    3. Syntax
    4. Code Helper
    5. Debugging
    6. Documentation
  3. Installation
    1. Requirements
    2. Compileable Plugins
  4. Syntax Linter
  5. Debugger
  6. Knowing issues
  7. Examples
  8. FAQ
  9. Project future

1. Introduction

TheVimIDE has the target to be a fully functional integrated development enviroment for the Vim and NeoVim editors. The offspring of TheVimIDE was a small plugin collection to make my daily work with Vim more comfortable. Over time and other IDEs as inspirations I had the idea to make Vim step by step to an IDE with all the features like autocompletion, syntax checking and many other features that makes programming easier and faster.

TheVimIDE has five major targets:

  • Combine fastness of a texteditor with comfort of IDE features
  • Support as many popular languages as possible
  • To be easy to configure
  • To be fully functional out of the box
  • To be expandable and forkable

2. Features

Below you can the the most considerable features.

2.1. Autocompletion

LanguageUsed PluginsThirparty Tools
C/C++Completorclang
JavaCompletor, JavaComplete2
PythonCompletorJedi
RubyCompletor, vim-ruby-autocompleteSolargraph
PHPCompletor, phpcompletephpctags
HTMLCompletor, HTML5
CSSCompletor
LuaMUComplete
All otherMUComplete, Gutentags

2.2. Interface

PluginDescription
vim-plugplugin manager
vim-airlinemodern vim user interface
vim-airline-themesthemes for vim airline
NERDTreeproject explorer to navigate easy through your file tree
NERDTree-Tabsto use same NERDTree on each tab
Tagbarshow all classes, functions and global variables in a side bar
vim-fugitiveGit wrapper for vim
vim-gitguttershows if lines are added, modified or deleted since last commit
identLineHighlights line indentation
Bookmarksadd line-bookmarks in your file
DidYouMeanasks for the right file to open when similiar files exists
winresizereasy resizes vim windows with hotkeys
vim-search-pulsehighlights the line with the current found search pattern
deniteasynchronous unite all interfaces for Neovim/Vim8

2.3. Syntax

PluginDescription
Advances C++ Highlight
rainbow brackletsbetter highlights brackets/blocks
CSS Colorsshows the color for html colors in code
jellybeanscolor scheme
Search Taskssearching TODO, FIXME or other tags in your project
PGSQLbetter highlights (Postgre) SQL files
vimtexsyntax and completion support for LaTeX

2.4. Code Helper

PluginDescription
leximaautocloses brackets, blocks and literals
closetagautocloses (x)html/xml tags
Commentaryfast comment/uncomment lines
UtilSnipssnippet handler for vim
vim-snippetssnippets for many languages
vim-rubyVim/Ruby configuration files
vim-railsRuby on Rails power tools
copy-cut-pasteeasy copy paste from system buffer into vim or from vim into system buffer (requires gvim)

2.5. Debugging

PluginDescription
Syntasticshows syntax errors during programming
SingleCompilecompiling single files without closing vim
ConqueGdbIntegrated gdb C/C++ debugger for vim
VdebugDebugger for PHP, Python, Ruby, Perl, Tcl and NodeJS

2.6. Documentation

PluginDescription
VimWikiwiki system for vim
vim-notesnote system for vim

3. Installation

All you need to do is to run the ./install.sh for Vim or ./install-neovim.sh for NeoVim. You will be asked if you want to build/install a view features to get the whole functionality.

3.1. Requirements

First of all make sure that your Vim / Neovim editor is compiled with python2 and python3 support.

  • For Arch Linux (and derivates) Vim is by default compiled with python support.
  • For Ubuntu/Debian install vim-nox

Upgrade Neovim (all Linux plattforms):

  • sudo pip2 install --upgrade neovim
  • sudo pip3 install --upgrade neovim

You need to install these third party programs for the mentioned features:

  • Clang for C-Familiy autocompletion
  • Jedi for Python autocompletion
  • npm, nodejs for (good) JavaScript autocompletion, default needs nothings
  • maven to build Java autocompletion at your own
  • ctags for Vim-Gutentags support
  • phpctags for better PHP autocompletion experience

Installing third party Requirements:

  • Debian/Ubuntu: sudo apt-get install clang nodejs python3 npm lua5.3 liblua5.3 maven, for jedi: sudo pip3 install jedi
  • Arch Linux: sudo pacman -S clang nodejs python npm lua maven, for jedi: sudo pip3 install jedi

The named OS above are tested

Plugins you need compile at your own:

After execution of the install.sh script you can use the other install scripts in ./build for plugins that you need to build.

  • omnisharp__install.sh for C# autocompletion (not working now)
  • java_install.sh for Java
  • javascript_install.sh for Javascript

4. Syntax Linter

The default linter for following languages are:

  • JavaScript: eslint, install it with sudo npm install -g eslint
  • Python: flake8, install it with sudo pip install flake8

If you want to change the checker of a language: Edit Settingloader#Syntastic() at ~/.vim/autoload/settingloader.vim Change: let g:syntastic_yourlanguage_checkers = ['yourchecker']

5. Debugger

Following debugger engines are installed by default:

  • ConqueGdb for C/C++ (gdb must be installed)
    • Call it with :ConqueGdb binaryfile -q
  • Vdbug, Debugger for Python, PHP, Ruby and Pearl (JavaScript is not working at this time)

For ConqueGdb I will write shorter command aliases.

Vdbug has a very good frontend but needs thrid party requirements for every single language. I will write serveral install scripts to make the installation of them very easy. Until then you need to read the help under: :help VdbugSetUp

6. Knowing issuses

7. Examples:

C/C++

Java

Lua

HTML

CSS

PHP

JavaScript

8. FAQ

Why I use different autocompletion plugins?

  • I have tested several plugins and each has pros and cons.
    • µComplete is very good for most filetypes (e.g html,css), but it needs extra plugins for using C/C++ autocompletion and it was very slow. It also is very compatible with vim ommicompletions. The harmony between mucomplete and the OmniSharp-Server is also great.
    • Completor on the other hand is very good for C/C++ (much faster than µComplete with clang-complete), PHP, Pyhton (Jedi) and Javascript

Why I don't use YouCompleteMe?

  • YCM is a good solution if you are lazy to configurate vim like my vim-plugin-collection and on the other hand it works very well, but:
  • I and others users has sometimes build problems with YCM
  • The omnicomplete server ycmd can also make problems if it crashes (no autocompletion then)
  • Basic install is much bigger then vim-plugin-collection (and it is only autocompletion)
    • I don't want to blow out the collection to hundrets of megabyte
  • C# completion is not as smart then my solution
  • Web programming is not supported

9. Project future

The project will be updated in irregular intervals.
For feature request open a new issue with Topic: Request - your feature request.

The project documentation comes if time permits it.

About

Modern Vim IDE with support for C/C++, Java, Python, Lua, PHP, JavaScript, Ruby and much more ...

Topics

Resources

Stars

37 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages