5 must-have Vim plugins in 2018
VIM ecosystem changes quite a bit over time. Some of the plugins I have are good old ones, others are rather new, but amazing nevertheless. So in this article, I would like to show you several must-have plugins for VIM, no matter whether you are writing in Ruby, Python, JavaScript, or C#.
Without further ado and in no particular order.
Vim-plug for plugin management
First things first. You need some kind of plugin manager and the amazing Vim-plug is the most simple and the most powerful around there. It allows you to least the plugins in the vimrc file and simply call :PlugInstall
to easily install all of them. Then you can run :PlugUpdate
to update them in one go.
NERDTree: the file explorer
OK, this one I guess the most old in this list. But this is because there are still not many comparable plugins around there. NERDTree just works. Here are some of the useful settings:
let NERDTreeShowHidden=1 " Always show dot files
let NERDTreeQuitOnOpen=1
map <Leader>n :NERDTreeFind<CR>
Fuzzy file finder FZF
NERDTree is a good option if you need to look around. But most often you simply need to open a specific file by name, even if you might not remember exactly how it's called. This is where FZF plugin comes in handy. It is written in Go and is blazingly fast. If you install it in your system as a stand-alone thing, it will save you so much time not only in VIM but basically anywhere. Just take a look at the examples.
ALE for linting
Since version 8 VIM has become asynchronous. That means that it will no longer freeze when you run an external bash command. ALE is an asynchronous linting tool with support for any linter/fixer you can only think of. Since it works in the background it is very pleasant then alternatives like Syntastic. It is also quite customizable. You can set the linters you's like to use for particular file types, set the symbols for warning and errors (hint: you can use emojis!), and so on.
Deoplete for auto-completing
Of cause it's hard to imagin a modern development workflow without an auto-completing engine. Deoplete is fantastic asynchronous plugin initially developed for NeoVim currently is compatible with Vim8+. It is compatible with Ultisnips and honza/vim-snippets and I highly recommend installing them as well.
That's pretty much it for now. If you know other must-have Vim plugins that you can't imagine your life without, please add to the comments!