Asynchronous Linting Engine for vim
Linting becomes more and more popular with Infrastructure as Code. While this is still a topic that is often approached half-heartedly we may be certain that in a couple of years it will be so natural to sysadmins as pushing code to a git repository. For vim there is a plugin called Asynchronous Linting Engine that makes linting a default without ever calling some linter in a CLI.
Until recently I never thought about what vim version I actually had installed on my system. “Vim is vim. Does it need a version number? Does it get new features?” Actually vim is still under active development and with Version 8 it got the ability to run functions asynchonously. That is a great improvement and made plugins like the Asynchronous Linting Engine (ALE) possible. Source code: (https://github.com/dense-analysis/ale)
ALE is linting our code in the background as we type. It only shows up once it detects any errors. It supports a variety of linters. The full list can be viewed here: https://github.com/dense-analysis/ale/blob/master/supported-tools.md
Emacs vs. vim was the old debate. IDEs vs. vim is the new one. Undoubtly IDEs have a lot of useful features out of the box. If we compare that to plain vim at first moment it looks like they are the better choice. But the good thing about vim is vim is that it is customizable. That customization is not for free. It takes some effort. But once it is done I believe vim is the much more powerful tool. Plugins like ALE are a great enhancement.