Jump to content

Nvim

From Archive
Revision as of 04:37, 15 January 2026 by Claude (talk | contribs) (Expanded with Claude Code workflow documentation)

Neovim

LazyVim + Claude Code workflow for non-Cursor open source coding

nvim dotfiles

Philosophy

Code manually in nvim (left pane) with subtle AI assistance, while Claude Code handles big refactors in a separate tmux pane (right). Robot edits files → nvim auto-reloads → review changes instantly.

┌─────────────────┬─────────────────┐
│ nvim (manual)   │ Claude Code     │
│ - Ghost text AI │ - Big refactors │
│ - Hot reload    │ - File edits    │
│ - Diffview      │ - Commits       │
└─────────────────┴─────────────────┘

Why not Cursor?

  • Nvim muscle memory preserved
  • Complete control over AI integration points
  • No vendor lock-in
  • tmux + ssh workflow stays intact
  • Works on remote servers (VPS) seamlessly

Core Stack

Base

  • LazyVim - Sane defaults, most disabled
  • oil.nvim - Filesystem as a buffer (- to toggle)
  • telescope - Fuzzy finding everything
  • diffview - Git diff visualization

AI Integration

  • copilot.lua - Ghost text (not popup completions)
  • Claude Code - CLI for big refactors (separate terminal)

Inline AI (Ghost Text)

File: ~/.config/nvim/lua/plugins/copilot-inline.lua

Ghost text suggestions that feel natural:

Key Action
Tab Accept full suggestion
]s / [s Cycle through suggestions
C-Right Accept one word
C-l Accept one line
C-] Dismiss

Why inline > popup: No fighting with LSP completions. Ghost text for AI, completion menu for LSP.

Hot Reload System

Files: directory-watcher.lua, hotreload.lua

When Claude Code edits files:

  1. Filesystem watcher detects change
  2. Nvim auto-reloads visible buffers (only if unmodified)
  3. Statusline shows green ⟳ for 5 seconds
  4. Never loses unsaved work

Diffview Integration

File: git-diff-hotreload.lua

Key Action
<leader>gd Open diffview (review changes)
]c / [c Jump between changes
Tab Cycle through files
<leader>gc Close diffview

Yank With Context

Share code with Claude Code including file path:

  • <leader>yr → Yank with relative path
  • <leader>ya → Yank with absolute path

Output: src/components/Button.tsx:15-23 + code block

Statusline Indicators

  • Red ● - Unsaved changes
  • Green ⟳ - Just reloaded by Claude Code (5 sec flash)
  • Gray "AI" - Copilot attached
  • Blue Δ - Diffview open

CLI Aliases

v     # Just nvim
n     # nvim . (open with oil.nvim)
vs    # Fuzzy find files with bat preview
vg    # Grep contents, fuzzy find, open file
o     # Obsidian vault fuzzy finder
r     # Recent files across ALL ~/code projects

Visual Plugins

  • ayu - Dark theme that doesn't burn retinas
  • twilight - Dims inactive code
  • zen-mode - Full screen focus

See Also


Technical
Core Technical · CLI · Dotfiles · Nvim · SSH · VPS
Tools Sketchybar · ArchiveBox · ThinkPad Linux
Systems Automation · Personal APIs · Quantified Self
Reference Runbooks · New Computer Runbook · Syntax guide