LunarVim Best Vim Config?
Tags: programming, vim, tutorial, webdev
Published: 2022-08-18 13:00:30

**Why NeoVim**

Like many developers, while researching on ways to increase ones productivity as a developer I came across the world of VIM(NeoVim). Needless to say, those VimWizards left a great impression on me. They were able to do common programming tasks with lightning speed and precision and I knew NeoVim has to become part of my routine as well. I went through a phase of looking for the ideal development set of tools that would be convenient and enjoyable.

Neovim like Vim, is a very sophisticated tool that is extremely customizable but carries a steep learning curve. However, once you're past the basics and force yourself some muscle memory it is unbelievably fast. All the effort pays off massively.

On the downside Vim requires a significant up-front time investment in learning.
Also don't let the abundance of choice in customization options be distracting.

Pros of Vim(NeoVim):

- Lighting fast.
- Extremely configurable and customizable.
- Massive ecosystem of plugins.
- Cross-platform support.
- Support for almost any programming language out there.
- It is free and open source.

**Installation**

First of all VIM and NeoVIM are not the same!

- Vim is a ubiquitous text editor that comes preinstalled with most major Linux distributions.

- NeoVim is an enhanced upgrade to Vim that incorporates more features.

If you are new to the VIM universe I reccommend that you start your journey with a preconfigured neovim layer like [LunarVim](https://www.lunarvim.org/#opinionated).

LunarVim takes advantage of the latest Neovim features such as Treesitter and Language Server Protocol support.
The installation process is straight forward. Instructions can be found [here](https://www.lunarvim.org/01-installing.html).

**Tips for MacOS**

- LunarVim excepts to find NeoVim already preinstalled on your machine.

`brew install neovim`

- You will need Rust and Cargo before you proceed with the LunarVim installation.

`curl https://sh.rustup.rs -sSf | sh`

- Since most of the modern NeoVim configs are done in lua you will need to get it as well.

`brew install lua`

**Fun part**

After the installation of LunarVim you can start your personal exploration of the worlds fastest text editor.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqspt96xtcp38d63tz0b.png)

**config.lua**

Most of your time customizing LunarVim will probably be spent in the config.lua file.
You can easily access if by opening LVim and pressing the <leader>(space) key followed by L and c.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w6kzljm5r0fso4qt1ui8.png)

You can set custom keybindings, override the default ones, add additional plugins and the list goes on.

**Telescope**

You plugin that you will find yourself using constantly is Telescope. It already comes pre-installed but has a few dependencies.

By pressing : you open command mode where you can type the following:

`:checkhealth telescope`


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mepiejngt3v56m6bga0.png)

More about telescope can be found [here](https://github.com/nvim-telescope/telescope.nvim)

This was just a small preview of whats possible with the LunarVim config.

NeoVim can also be used with more popular test editors like VS Code with the [VsCodeVim](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim) plugin.