Tinker AI
Read reviews
4 min read Editor

I’ve been a vim user for fifteen years. AI coding tools are mostly editor-shaped — Cursor, VS Code with Copilot, Zed, etc. The friction of using vim alongside AI tools is real. Every few months I try to “give in” and just use Cursor. Every few months I come back to vim. Here’s why.

This isn’t a generic vim defense. It’s specifically about vim plus AI tools and what I’ve learned about the combination.

The setup that kind of works

My current setup:

  • vim (or neovim, depending on the day)
  • copilot.vim for inline autocomplete
  • A terminal pane with Claude Code or Aider for chat-shaped work
  • Tmux for managing the panes

This is more setup than just opening Cursor. It also has more friction in specific places. Why bother?

What I value about vim

The reasons that survive every “should I switch?” exercise:

Speed of editing. Vim’s modal editing is faster for me than any non-modal editor. Across thousands of edits per day, the cumulative time difference is real.

Composability. vim’s commands compose. c i w (change inner word), d a p (delete around paragraph), g U $ (uppercase to end of line). Once you know the verbs and nouns, you can express any edit. Mouse-and-menu editors don’t have this.

Speed of starting. vim opens instantly. VS Code/Cursor takes seconds. Across many tab/file/project switches per day, the time adds up.

Resource use. vim uses ~50MB of RAM. Cursor uses 2GB+ with my normal extension set. On laptops without a lot of memory headroom, this matters.

Stability. vim’s behavior hasn’t meaningfully changed in years. Cursor changes regularly. I can count on vim being the same tomorrow as it is today.

Customization. vim is configurable to my exact preferences. Cursor’s customization is bounded.

These are vim’s classical strengths. They predate AI tools and persist.

What the AI integration costs

The friction with AI tools in vim:

Less integrated AI experience. Cursor’s AI is part of the editor. Vim’s AI feels grafted on. The chat panel is a separate terminal; the autocomplete is one of several plugins. The seams are visible.

Fewer features. Cursor has Composer, BugBot, Shadow Workspace. Vim has Copilot autocomplete and whatever I cobble together with Claude Code or Aider in a separate terminal. The feature gap is real.

More setup. My vim AI setup took several hours to dial in. Cursor’s AI works out of the box. Time-to-productive is faster on Cursor for new users.

Less polish. vim plugins for AI are community-maintained, not vendor-supported. The polish is variable.

Less codebase awareness. Cursor indexes the codebase; vim doesn’t natively. I work around this with Claude Code’s context, but it’s less seamless.

These are real costs. I’m acknowledging them; I’m staying in vim anyway.

Why I stay anyway

A few specific reasons the vim trade is still worth it for me:

Editing speed compounds with AI. When AI generates a chunk of code that needs adjustment, the editing speed of vim makes the adjustment faster. Cursor’s AI is more integrated, but the editing of AI output is faster in vim. Net result is roughly comparable.

The terminal is the workflow. I run tests in the terminal, manage git in the terminal, deploy in the terminal. Having the AI in a terminal pane fits the rest of my workflow. An editor-based AI is the outlier; my workflow is terminal-centric.

Long-term comfort matters. Vim is a tool I’ve used for fifteen years. I don’t have to think about it. Cursor is a tool I’d be using; the cognitive load of the tool is non-trivial. Long-term workflow comfort beats short-term feature gains.

Customization that matches my brain. My vim config has 15 years of accumulated preferences. Recreating that in any new editor is months of work. The compound benefit of “everything is exactly how I want it” is hard to give up.

What I miss

Honestly, several things:

Cursor’s Composer. Editing many files with one prompt and seeing all the changes in a unified diff is genuinely useful. I emulate this with Claude Code, but the UX isn’t as smooth.

Cursor’s chat-with-codebase context. Asking “where is X?” and getting a smart answer requires more setup in vim. Cursor’s indexing makes it instant.

The visual diff view. Cursor’s diff view for AI-generated changes is well-designed. vim’s :diffsplit is fine but less polished.

One-app coherence. Everything in one place. With my tmux setup, I have multiple panes that feel like one workspace, but it’s not as unified as a single editor would be.

These aren’t deal-breakers. They are real costs I’m choosing to bear.

What I tell other vim users

When asked whether to stick with vim or switch to Cursor:

“If you’ve been using vim for less than 3 years, Cursor is probably worth trying. The cost of switching from light vim use is low; the gain from better AI integration is real.”

“If you’ve been using vim for more than 5 years, the calculus is different. Your vim configuration is worth a lot to you. The friction of AI integration is bounded. Stay in vim if the friction isn’t crushing.”

The middle case (3-5 years) is the hardest. Genuinely depends on how committed you are to vim and how much the AI features matter for your work.

What I’d want from tools

Things that would make vim + AI better:

More polished neovim AI plugins. The current generation (avante.nvim, codecompanion.nvim) is good but not at Cursor’s level. More polish would close the gap.

Better terminal AI tools. Claude Code is great; the next iteration could be even better. Specifically: better context management, better integration with file editing in vim.

A native vim AI panel. Something like Cursor’s chat panel but in vim. There are early projects in this direction; nothing is yet first-class.

Codebase indexing as a service. A standalone codebase indexer that I could query from vim or Claude Code or any other tool. Currently this is bundled with editors; unbundling would help vim users.

These are not unreasonable asks. The vim community is small enough that vendor priority is limited. The tools tend to optimize for the larger editor-shaped audience.

A specific workflow that works

For others wanting to stay in vim, the setup that’s working for me:

copilot.vim for inline autocomplete. Free if you have Copilot; otherwise the alternatives are paid.

A terminal pane running Claude Code (or Aider) for chat-shaped work. I trigger by :terminal and switch focus with tmux bindings.

A <leader>a mapping that sends the current selection to my AI terminal. Quick way to ask “explain this” or “refactor this.”

Buffer-local rules in .nvim/ that document the project’s conventions for AI tools. Claude Code reads them; my workflow is consistent.

fzf for codebase search. Combined with ripgrep, this gives me Cursor-like search without the index. Fast on most projects.

This isn’t as smooth as Cursor. It’s smooth enough.

The honest tradeoff

The vim user using AI tools is making a tradeoff. Better editor experience (vim’s modal editing, customization, speed) for worse AI integration (more setup, fewer features, less polish).

The tradeoff is reasonable for some users. It’s not reasonable for everyone. The answer depends on:

  • How much you value vim’s editing experience
  • How much the missing AI features matter for your work
  • How much time you’ll invest in dialing in the setup
  • How much you value workflow stability

For me, the tradeoff is positive. The vim experience matters more than the AI integration. The AI features I miss are real but not transformative.

For others, the tradeoff might invert. Switching to Cursor might be the right call.

Closing

The vim community sometimes treats “should I use vim?” as a tribal question. It isn’t. It’s a tradeoff with real costs and real benefits, and the right answer depends on the specific person.

For long-time vim users tempted by AI tools: you don’t have to switch editors to use AI. The vim setup is workable. The friction is bounded. Your accumulated configuration is worth preserving.

For non-vim users curious about vim because of AI: probably skip it. Learn vim for its own sake if you want; don’t learn it because of AI tooling. The AI integration is the friction, not the value.

Tools are personal. Pick what fits. Optimize for long-term workflow comfort, not for which tool ships the most features in any given quarter.