SkillAgentSearch skills...

TheVimIDE

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

Install / Use

/learn @Shadowsith/TheVimIDE

README


!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

<a name="introduction"></a>

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

<a name="features"></a>

2. Features

Below you can the the most considerable features.

<a name="autocomp"></a>

2.1. Autocompletion

| 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 | |

<a name="interface"></a>

2.2. Interface

| 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 |

<a name="syntax"></a>

2.3. Syntax

| 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 |

<a name="code_helper"></a>

2.4. Code Helper

| 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)

<a name="debugging"></a>

2.5. Debugging

| 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 |

<a name="documentation"></a>

2.6. Documentation

| Plugin | Description | | ------ | ----------- | | VimWiki | wiki system for vim | | vim-notes | note system for vim |

<a name="installation"></a>

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.

<a name="requirements"></a>

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

<a name="compile"></a>

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

<a name="syntaxlinter"></a>

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']

<a name="debugger"></a>

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

<a name="issues"></a>

6. Knowing issuses

<a name="examples"></a>

7. Examples:

C/C++

Java

Lua

HTML

CSS

PHP

JavaScript

<a name="faq"></a>

8. FAQ

Why I use different autocompletion plugins?

  • I have tested several plugins and
View on GitHub
GitHub Stars38
CategoryCustomer
Updated9mo ago
Forks7

Languages

Vim script

Security Score

87/100

Audited on Jun 15, 2025

No findings