Vim is a widely used terminal editor in the Linux world and like many other Linux applications, it runs on Unix, Windows, and macOS too.
One of the things people love most about Vim is that it is highly customizable and extensible via plugins. Finding the right plugins for your workflow will greatly improve your productivity on Linux.
Here's a selection of the 12 best Vim plugins that will enhance your workflow on Linux.
1. NERDTree

NERDTree is a file exploration plugin that allows you to visualize your project hierarchy right within the Vim editor. In addition, you can use it to browse through complex folder structures and open files for editing. You can install NERDTree manually or with your favorite Vim plugin manager.
Once installed, you can open NERDTree using the Vim command :NERDTree.
Learn more or get help about this awesome file explorer using the following Vim command :help NERDTree. Make use of Vim's built-in tutor to master this awesome editor.
Download:NERDTree
2. Emmet-vim
Emmet-vim is a powerful and flexible code completion plugin. It mostly targets web developers working with HTML and CSS. Emmet is more flexible and customizable than traditional code snippets.
For example, to create three HTML links with emmet you can simply type li*3 and press the keyboard shortcut Ctrl + Y followed by , (comma) and emmet will automatically create the code for you. emmet is also available for other code editors such as VS Code, Atom, and more.
Download:Emmet-vim
3. vim-gitgutter
vim-gitgutter is a great tool if you use the Git version control system in your workflow. This plugin helps you keep track of your code by showing you all the changes that you have made in your remote repository. For example, it highlights added, modified, or removed files.
Alternatively, if you use other version control systems such as Bazaar, Mercurial, Subversion, Darcs, etc., you can use the vim-signify plugin.
You can also use Git actions such as stage, preview, and undo code changes in your repository. vim-gitgutter comes with additional features such as optional line highlighting, staging partial chunks, etc.
The plugin draws its inspiration from a similar plugin available for the Sublime text editor. You can also use it with Vim's line number feature to see which lines have been changed.
Download:vim-gitgutter
4. commentary.vim
You can easily comment and uncomment code in Vim with this awesome plugin. commentary.vim has very few commands and is extremely easy to use, even for beginners.
The most important command is gcc which comments out a single line of code. Use the command gc to comment out an entire selection when you are in visual mode.
commentary.vim is built on Vim's support for mapping an operator. You can install the plugin via Vim's plugin support or using your favorite plugin manager.
Download:commentary.vim
5. vim-airline

vim-airline displays a beautiful and lean status bar at the bottom that replaces the default one in Vim. The status line consists of several sections and gives you information such as the current cursor position in the file, file type, file format, etc. The different sections are distinctly colored to give you a nice hint.
The plugin theme, colors, and functionality are easy to configure and can be customized to your liking. vim-airline is a lightweight, well-tested Vim plugin, and integrates well with other plugins such as fugitive, eclim, Flog, etc.
Download:vim-airline
6. fzf
Based on the general-purpose command-line finder, the fzf (fuzzy finder) plugin is basically a wrapper for the same. It contains a few commands that are easy to get accustomed to, whether you're a beginner or an advanced Vim user.
The plugin is very light, super-fast, and easy to install. The official fzf GitHub page contains very good documentation on how to use the plugin.
Download:fzf
7. Fugitive
Fugitive is touted as one of the best Vim plugins for Git integration. The name Fugitive stems from the fact that the creators think that it's so awesome that it should be illegal.
Fugitive works more as a Git commands wrapper, and its syntax is very similar to that of Git. To run any Git commands, simply add the :Git prefix to your commands. For example, to commit, use the Vim command :Git commit, or :Git diff to show Git diff between multiple commits or branches.
In addition, the plugin provides some custom commands for higher-level operations, such as :Gedit to view any commit, tree, or tag in the repository, or :GDelete for running the git rm command on the current file. To move a file, you can use :GMove which is similar to the Git command git mv.
Download:Fugitive
8. Asynchronous Lint Engine (ALE)

The ALE plugin, short for Asynchronous Lint Engine, is a code analysis and linting tool that displays warnings and errors in real-time as you make changes to your code.
In addition to linting, ALE also provides quick code fixing suggestions with the :ALEFixSuggest command. It also supports auto code completion. Better still, you can view more information about a symbol by hovering over it using the :ALEHover command.
ALE is well-documented and you can access most of its documentation using the :help command. For example, to get help on the hover feature, you can run :help ale-hover.
ALE has support for dozens of programming and scripting languages such as C#, Bash, Ansible, Chef, SQL, JavaScript, YAML, TypeScript, C, LaTeX, etc.
Download:ALE
9. OmniSharp-vim
C# is a programming language that was originally developed by Microsoft and could only run on Windows. Fast-forward to the present, you can run C# on Windows, macOS, and Linux. And it does not stop there, you can even develop C# code in Vim.
The OmniSharp-vim plugin is specifically made to help you write C# code with ease in Vim. It provides code completion, code IntelliSense, and other necessary features to make writing C# code in Vim just as enjoyable. Some other great features it supports include code refactoring, syntax highlighting, code formatting, unit test runner, etc.
Download:OmniSharp-vim
10. surround.vim
As the name suggests, the surround.vim plugin is all about surrounding a piece of text or code with another character, especially brackets, parentheses, quotes, etc. The plugin uses very simple commands to accomplish its goal.
Download:surround.vim
11. Supertab
Supertab helps you with insertion completion via the Tab key on your keyboard. Even better, it is easy to configure so you can personalize it to suit your needs.
Use the vim command :help supertab to get help with the plugin. You can use any of your favorite plugin managers or Vim's built-in plugin support to install the plugin.
Download:Supertab
12. SnipMate
The core aim of this plugin is to provide snippets similar to those supported in the TextMate text editor to make your coding faster. For example, if you are using a C-based programming language to create a for loop, simply enter "for" followed by the Tab key, and it will create the following code for you:
for (i = 0; i < count; i++) {
/* code */
} You can easily add your own custom snippets for your preferred programming language using SnipMate as well.
Download:SnipMate
Customizing Vim to Your Preferences Using Plugins
Apart from extending and providing additional functionality to Vim, plugins greatly improve your workflow and productivity. There are thousands of Vim plugins at your disposal, and you can find the ones that best suit your workflow and install them for free.
If the default user interface of Vim doesn't jazz you up, you can further customize the editor with its built-in customization features using the .vimrc file.
ncG1vNJzZmivp6x7rq3KnqysnZ%2Bbe6S7zGiZnqukYsOquYypo66fmaPAcA%3D%3D