- Introduction
- Features
- Installation
- Syntax Linter
- Debugger
- Knowing issues
- Examples
- FAQ
- Project future
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
Below you can the the most considerable features.
Language | Used Plugins | Thirparty Tools |
---|---|---|
C/C++ | Completor | clang |
Java | Completor, JavaComplete2 | |
Python | Completor | Jedi |
Ruby | Completor, vim-ruby-autocomplete | Solargraph |
PHP | Completor, phpcomplete | phpctags |
HTML | Completor, HTML5 | |
CSS | Completor | |
Lua | MUComplete | |
All other | MUComplete, Gutentags |
Plugin | Description |
---|---|
vim-plug | plugin manager |
vim-airline | modern vim user interface |
vim-airline-themes | themes for vim airline |
NERDTree | project explorer to navigate easy through your file tree |
NERDTree-Tabs | to use same NERDTree on each tab |
Tagbar | show all classes, functions and global variables in a side bar |
vim-fugitive | Git wrapper for vim |
vim-gitgutter | shows if lines are added, modified or deleted since last commit |
identLine | Highlights line indentation |
Bookmarks | add line-bookmarks in your file |
DidYouMean | asks for the right file to open when similiar files exists |
winresizer | easy resizes vim windows with hotkeys |
vim-search-pulse | highlights the line with the current found search pattern |
denite | asynchronous unite all interfaces for Neovim/Vim8 |
Plugin | Description |
---|---|
Advances C++ Highlight | |
rainbow bracklets | better highlights brackets/blocks |
CSS Colors | shows the color for html colors in code |
jellybeans | color scheme |
Search Tasks | searching TODO, FIXME or other tags in your project |
PGSQL | better highlights (Postgre) SQL files |
vimtex | syntax and completion support for LaTeX |
Plugin | Description |
---|---|
lexima | autocloses brackets, blocks and literals |
closetag | autocloses (x)html/xml tags |
Commentary | fast comment/uncomment lines |
UtilSnips | snippet handler for vim |
vim-snippets | snippets for many languages |
vim-ruby | Vim/Ruby configuration files |
vim-rails | Ruby on Rails power tools |
copy-cut-paste | easy copy paste from system buffer into vim or from vim into system buffer (requires gvim) |
Plugin | Description |
---|---|
Syntastic | shows syntax errors during programming |
SingleCompile | compiling single files without closing vim |
ConqueGdb | Integrated gdb C/C++ debugger for vim |
Vdebug | Debugger for PHP, Python, Ruby, Perl, Tcl and NodeJS |
Plugin | Description |
---|---|
VimWiki | wiki system for vim |
vim-notes | note system for vim |
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.
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
- 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
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
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']
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
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
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.