Skip to content

belminf/dotvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

360 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotvim

My Neovim configuration. Leveraging LazyVim.

Requirements

macOS

brew install \
  fd \
  fzf \
  git \
  go \
  neovim \
  node \
  npm \
  python3 \
  ripgrep \
  ruby \
  terraform

Arch Linux

yay -S \
  fd \
  fzf \
  go \
  neovim \
  nodejs \
  npm \
  python \
  ripgrep \
  ruby \
  terraform \
  wget \
  zip

Setup

make init

Update

make update

Mason

LSP servers and tools are managed by Mason with version-locked installs via mason-lock.nvim.

To restore pinned tools:

make restore
  • :Mason — browse/install packages
  • :MasonLock — save current versions to mason-lock.json
  • :MasonLockRestore — install exact versions from lockfile

Keys

Use Space ? to search all keymaps. See LazyVim keymap for full reference.

Buffers

  • Shift l / ]b: Next buffer
  • Shift h / [b: Previous buffer
  • Space Tab: Browse open buffers (dropdown picker, j/k to navigate, type to filter)
  • Space bd: Delete buffer
  • Space qq: Quit all

Windows

  • Ctl h/j/k/l: Window movement
  • Ctl q: Toggle terminal insert mode

Navigation

  • -: Browse files (vertical popup)
  • Space e: Browse root directory (sidebar)
  • Space Space: Find files
  • Space /: Live grep across project (ripgrep + fzf)
  • _: Browse symbols in current file (scrollable tree + preview)
  • &: Fuzzy search symbols across workspace (LSP)

Editing

  • s: Jump to letter (flash)
  • S: Select treesitter node (flash) — highlights syntax blocks like functions, conditions, loops; type a label to jump/select
  • g s r: Replace surrounding
  • g s a / g s d: Add / delete surrounding
  • > / < (visual): Indent / unindent
  • g c c / g c (visual): Comment
  • F: Format
  • Ctl y: Copy buffer to clipboard
  • Y (visual): Copy selection to clipboard
  • %: Jump to matching bracket / paren / brace
  • qa: Record macro into register a (stop with q); @a to replay, @@ to repeat last

Completion

  • Ctl Space: Manually trigger / toggle docs
  • Tab / Shift Tab: Navigate list
  • Enter: Confirm selection
  • Ctl e: Cancel
  • Ctl b / Ctl f: Scroll docs

LSP

  • K: Hover docs for symbol under cursor
  • gK: Signature help — shows function parameter list (like the tooltip when you type ()
  • gd: Go to definition
  • gI: Go to implementation
  • gy: Go to type definition
  • gr: References
  • `: Toggle floating diagnostics
  • ]d / [d: Next / previous diagnostic

Refactoring

Space c is the code action prefix — hit it and which-key shows everything available. Key ones:

  • Space cr: Rename symbol (F2 in VSCode / GoLand)
  • Space ca: Code action / quick fix (Ctrl+. in VSCode) — extract variable, organize imports, fix errors
  • Space cf: Format file
  • Space cR: Rename file (updates LSP references too)
  • Space uh: Toggle inlay hints (inline type annotations in the code)

Space s is the search prefix. Useful ones beyond files:

  • Space sS: Symbols across workspace (same as &)

Git

  • ]h / [h: Next / previous hunk
  • Space ghs: Stage hunk
  • Space ghr: Reset hunk
  • Space gb: Blame line

Testing

  • Space tr: Run nearest test
  • Space tf: Run file tests

Other

  • Ctl g: Toggle Claude Code panel (works in normal, insert, and terminal mode)
  • Ctl /: Open terminal
  • Esc: Dismiss notifications + clear search highlights

Transition

Was Now
q <leader>bd / <leader>qq
<Tab><Tab> / <S-Tab><S-Tab> <S-l> / <S-h>
> / < (normal, diagnostics) ]d / [d
<C-h> (git hunk, broke window nav) ]h
<Tab> / <S-Tab> (visual indent) > / <
<Esc> (dismiss notifs, broke noh) <Esc> does both now
<C-t> (todo search) <leader>sT
# (comment) gcc / gc
# (search backward) * then N
cs (surround replace) gsr

When stuck

  • Space ?: Search all keymaps (fzf)
  • Space sC: Search commands (fzf)
  • Space :: Search command history (fzf)
  • LazyVim keymaps reference

References

About

My VIM configuration

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors