Moving from VS Code & WebStorm to NeoVim: A Fullstack Developer’s Guide

Blog

Posted by Nuno Marques on 7 Feb 2025

Moving from VS Code & WebStorm to NeoVim: A Fullstack Developer’s Guide

Why Move to NeoVim?

If you've used VS Code, WebStorm, or Notepad++, you might have encountered issues like:

  • Lack of true floating/detachable windows in VS Code (until recently).
  • WebStorm’s odd shortcut inconsistencies (e.g., duplicating lines up vs. down).
  • Slow performance in WebStorm and VS Code, where squiggly lines appear due to delayed linting and parsing.
  • Feeling that despite all the features, something is still missing in terms of speed, efficiency, and flexibility.

NeoVim is a modal text editor that fixes many of these issues, providing speed, extensibility, and complete control over your workflow. With a bit of setup, it can outperform traditional IDEs in both efficiency and developer experience.


What is NeoVim?

NeoVim is a modern fork of Vim that offers:

  • Blazing speed (no Electron-based UI overhead like VS Code or WebStorm).
  • Highly customizable environment (plugins, themes, keybindings).
  • Better terminal integration.
  • Improved asynchronous performance for tasks like linting and autocompletion.

When configured well (like ThePrimeagen’s setup), it becomes a fully-fledged IDE alternative.


Problems NeoVim Can Solve

ProblemHow NeoVim Fixes It
Slow performanceNo Electron, ultra-fast
Lack of window detachmentTmux + NeoVim gives real tiling window support
Poor keyboard controlVim keybindings = ultimate efficiency
Heavy resource usageUses a fraction of WebStorm/VS Code’s memory
Limited customizationFully customizable with Lua configs
Autocompletion & LSP lagNative support for LSP (Language Server Protocol)
Extensions causing bloatLightweight plugins via lazy.nvim

Step-by-Step Guide to Installing NeoVim on macOS

1. Install Homebrew (if you haven't)

Homebrew is the best way to install packages on macOS.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Install NeoVim

brew install neovim

3. Install Plug-Ins and LSP Support

You'll need a good plugin manager. The best modern choice is lazy.nvim.

Install lazy.nvim

git clone --depth 1 https://github.com/folke/lazy.nvim.git ~/.local/share/nvim/lazy/lazy.nvim

Now, create the config folder:

mkdir -p ~/.config/nvim && touch ~/.config/nvim/init.lua

4. Add Your Basic Configuration

Open the init.lua file in NeoVim and start with a basic setup.

nvim ~/.config/nvim/init.lua

Paste this inside:

-- Enable line numbers & syntax highlighting
vim.opt.number = true
vim.opt.relativenumber = true
vim.cmd [[syntax on]]

-- Set tab behavior
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true

-- Load Lazy.nvim
require("lazy").setup({
  { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, -- Better Syntax Highlighting
  { "neovim/nvim-lspconfig" }, -- LSP Support
  { "hrsh7th/nvim-cmp" }, -- Autocompletion
  { "L3MON4D3/LuaSnip" }, -- Snippet Engine
  { "nvim-telescope/telescope.nvim" }, -- Fuzzy Finder
})

Save and quit NeoVim by pressing:

ESC -> :wq -> ENTER

Now reload your config:

nvim

Essential NeoVim Commands You Need

ActionCommand
Save file:w
Quit NeoVim:q
Quit without saving:q!
Save & quit:wq
Find text in file/search_term
Replace text:%s/old/new/g
Open a file:e filename
Split window horizontally:split or :sp
Split window vertically:vsplit or :vsp
Move between splitsCTRL + w + h/j/k/l
Toggle file explorer:Ex (if using NERDTree)

Making NeoVim Work Like an IDE

1. Install LSP (Language Server Protocol)

For fullstack development, you'll need TypeScript, JavaScript, and Python LSPs.

brew install lua-language-server
brew install typescript-language-server
brew install pyright

Now, add this to your init.lua:

require("lspconfig").tsserver.setup{} -- TypeScript LSP
require("lspconfig").pyright.setup{} -- Python LSP
require("lspconfig").lua_ls.setup{} -- Lua LSP

2. Install Treesitter (Better Syntax Highlighting)

brew install tree-sitter

Add this to init.lua:

require("nvim-treesitter.configs").setup {
  ensure_installed = "all",
  highlight = { enable = true },
}

Useful Plugins for Fullstack Developers

Here are must-have plugins to replicate IDE features:

  1. File Navigation: nvim-tree.lua (like VS Code’s Explorer)
  2. Autocomplete: nvim-cmp (IntelliSense-style)
  3. Git Integration: gitsigns.nvim
  4. Debugging: nvim-dap
  5. Telescope (Fuzzy Finder): telescope.nvim
  6. Status Line: lualine.nvim

Setting Up Tmux for Better Multi-Screen Support

One huge advantage of NeoVim is that it works with Tmux, allowing real detachable windows across multiple monitors.

Install Tmux

brew install tmux

Create a ~/.tmux.conf File

touch ~/.tmux.conf

Add this inside:

set -g mouse on
set -g history-limit 10000
bind r source-file ~/.tmux.conf \; display-message "Reloaded!"

Now, start Tmux:

tmux

Essential Tmux Shortcuts

ActionShortcut
Split HorizontalCTRL + b + "
Split VerticalCTRL + b + %
Switch PaneCTRL + b + arrow keys
Create New WindowCTRL + b + c
Move Between WindowsCTRL + b + n/p
Detach from TmuxCTRL + b + d

Final Thoughts

Switching from VS Code or WebStorm to NeoVim takes some effort, but the benefits are immense:

Blazing fast performance
Full keyboard control
Completely customizable
No laggy UI or unnecessary bloat
Works seamlessly with Tmux for multi-monitor workflows

If you're coming from WebStorm/VS Code, the learning curve might feel steep, but within a week or two, you'll likely never want to go back.


Next Steps

  1. Try using NeoVim full-time for a week.
  2. Gradually replace old habits (mouse clicking, slow commands) with NeoVim shortcuts.
  3. Tweak your init.lua to fit your needs.
  4. Join the NeoVim community (Reddit, Discord, GitHub) to discover more.

Once you embrace NeoVim, you won’t just be using a text editor—you’ll have a supercharged, customizable development environment built exactly for you.

Happy coding! 🚀