Skip to main content

My Neovim Setup

~5 min read
#neovim #tools #workflow

The Pitch

Every few months, someone asks me why I don’t just use VS Code. Simple: I don’t want to touch my mouse. Ever.

Neovim isn’t just a text editor. It’s the idea that every action should be a sequence of keystrokes — composable, repeatable, fast.

My Stack

lazy.nvim

Plugin manager that loads things on demand. Startup under 40ms. Best UI of any plugin manager I’ve tried.

local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none",
    "https://github.com/folke/lazy.nvim.git", lazypath })
end
vim.opt.rtp:prepend(lazypath)

Native LSP

Autocomplete, go-to-definition, rename across files, inline diagnostics — all without leaving the terminal. Pyright for Python, lua_ls for config. It just works.

Telescope

The one plugin I couldn’t live without. Fuzzy file search, live grep, buffer switching — all behind <leader>f. Faster than any GUI file explorer I’ve used.

Treesitter

Syntax highlighting that actually understands your code’s AST. Knows the difference between a function name and a variable. No more regex-based highlighting breaking on edge cases.

Tokyo Night

Obviously. Balanced enough for 10-hour sessions, contrast ratio perfect for my matte display.

Why Not VS Code?

VS Code is great. But it’s built for the mouse. In Neovim:

  • Delete a word: dw
  • Change inside quotes: ci"
  • Search and replace: :%s/old/new/g

These aren’t shortcuts to memorize — they’re a language. d = delete, w = word. Once you learn the grammar, you can express any edit as a sentence.

The Catch

First two weeks I was slower than I’d ever been. But after a month, I crossed the threshold — and never looked back.

Your editor should feel like an extension of thought. For me, that’s Neovim.


:wq

Back to blog