Moving on from VS Code

When I was starting my software development career a couple of years ago, I talked and breathed VS Code from the get-go.

Everything worked like magic. Write, run and execute.

As a newbie, that’s all that mattered.

No matter the memory hogging, the inability to handle large files/projects and the rigidity in customizations, I stuck with it.

Time has passed. Priorities have changed. Roosters are now cocks.

With the recent push to integrate AI into everything, I unfortunately find VS Code more bloated than ever. Slower, memory hungry.

I have reached a point where I need something light-weight, customizable and does not lag when I open a large file buffer.

The alternative? Neovim…

Neovim is a Vim-based text editor engineered for extensibility and usability, to encourage new applications and contributions.

From https://neovim.io/charter/

The goal

My primary programming languages of late are Go and Typescript.

So, I set out just to optimize for the best experience possible while programming in the mentioned languages.

What I needed

  • Syntax highlighting
  • Theme switches
  • Automplete
  • Auto package or library imports
  • An easily reachable terminal
  • An editor that will not freeze my computer (Electron, I see you…)

Setup

I did not want to spend my time tinkering with configs, so I went with Lazy Vim.

Installation is as simple as:

1
git clone https://github.com/LazyVim/starter ~/.config/nvim

PS: If you have any other nvim configs in your .config, back them up first.

On top of using LazyVim, I chose to use telescope https://github.com/nvim-telescope/telescope.nvim for grep based file searches.

More to the above, I get to switch themes, grep file names and filter much more easily.

image of neovim terminal window

In addition to having nvim-telescope and LazyVim, I added mason.nvim github.com/mason-org/mason.nvim

Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters.

For example, to install gopls using mavin.nvim, all you have to do is type

1
:MavinInstall gopls

With just the above, I was ready to go!

You can find my Neovim config via this Github repository https://github.com/luigimorel/dot-files