Finding the right development environment is a journey of balancing efficiency, customization, and reliability.

Before I continue, I would like to clarify that I do not wish to start an editor “holy war.”

I believe that both Neovim and Visual Studio Code (VSCode) are exceptional and powerful editors.

The choice of a development tool is highly subjective, and what works for one person might not work for another.

I am simply sharing my personal feelings and the journey I took to find the setup that fits my specific needs.

Starting with VSCode

I began my workflow using VSCode due to its user-friendly interface and extensive plugin ecosystem.

However, I soon found the constant reliance on mouse-driven operations to be a bottleneck.

My objective was to achieve a completely keyboard-centric workflow to maintain focus and speed.

Although VSCode provides a powerful built-in keyboard shortcut system, it requires frequent use of arrow keys and function keys.

I started with VSCodeVim, a popular extension that brings Vim-like keybindings to VSCode.

It almost met my requirements,

but I discovered that it became extremely slow when I worked with large files.

Furthermore, it could not synchronize well with my existing Vim configuration.

I do not like the idea of editing a vimrc and a json configuration file twice for the same functionality.

The Transition to Neovim

To address these limitations, I transitioned to Neovim.

I initially explored LazyVim, a popular Neovim configuration that offers a comprehensive set of features out of the box.

But I quickly realized that the pre-configured framework was too bloated for my requirements.

I Preferred a minimalist setup where I understood every line of my code in my configuration.