Complete reference for CharVim, a custom Neovim 0.12+ configuration managed by lazy.nvim. The entry point is nvim/init.lua and all modules live in nvim/lua/.
Installation
Run the install script. It auto-detects your OS and installs missing system dependencies before symlinking the config into ~/.config/nvim.
Back up your existing config: mv ~/.config/nvim ~/.config/nvim.bak
Clone the repository: git clone https://github.com/CrtlUserKnown/Charvim.git ~/.config/nvim
Launch Neovim: nvim
Plugins install automatically via lazy.nvim on first launch.
Requirements
Neovim 0.12+
Git
A Nerd Font for icons
ripgrep for Telescope live grep and Find and Replace
fd for Telescope file finding
python3 for DAP Python support
make for building avante.nvim
node for Mason-managed LSP servers
ANTHROPIC_API_KEY (optional) for AI features via avante.nvim
How Vim Works
Vim (and Neovim) is a modal editor. Keys do different things depending on the active mode. Press Esc to return to Normal mode from anywhere.
Mode
How to enter
Purpose
Normal
Esc
Navigation and commands. This is the default mode.
Insert
i / a / o
Typing text
Visual
v / V / Ctrl+v
Selecting blocks of text
Command-line
: / /
Saving, quitting, searching
Tip
Efficiency in Vim comes from staying in Normal mode and combining operators with motions: dw deletes a word, yy yanks a line, ci" changes text inside quotes.
Leader Keys
Key
Value
<leader>
Space
<localleader>
\
Leader key timeout: 500 ms.
General
Keys
Mode
Action
jk
Insert
Escape to Normal mode
leaderw
Normal
Quick save (:w)
leaderW
Normal
Save popup (Save / Save As / Format & Save / Save All)
leaderq
Normal
Save and quit (:wq)
leaderqq
Normal
Quit without saving (:q!)
;
Normal
Shell command shortcut (:!)
Navigation
Keys
Mode
Action
[[
Normal
Go to beginning of file (gg)
]]
Normal
Go to end of file (G)
H
Normal / Visual
Go to beginning of line (0)
L
Normal / Visual
Go to end of line ($)
Alt+[
Normal / Visual
Previous paragraph ({)
Alt+]
Normal / Visual
Next paragraph (})
Ctrl+h/j/k/l
Normal
Navigate splits (also integrates with tmux panes)
Line Manipulation
Keys
Mode
Action
Alt+k / Alt+j
Normal
Move line up / down
Alt+k / Alt+j
Visual
Move selection up / down
Ctrl+k / Ctrl+j
Insert
Move line up / down
Ctrl+Shift+k/j
Normal
Duplicate line up / down
Ctrl+Shift+k/j
Visual
Duplicate selection up / down
File Explorer
Keys
Mode
Action
leadere
Normal
Open file browser at current file's directory
leaderE
Normal
Open file browser at project root
leadert
Normal
Open new tab with file browser
:E / :Tree
Command
Open file browser
Telescope
Keys
Context
Action
leaderg
Normal
Live grep
leaderp
Normal
Projects picker
Ctrl+.
Telescope insert
Toggle hidden files
Hidden files are shown by default. .git/ directories are always ignored.
Harpoon 2
Keys
Mode
Action
leadera
Normal
Add current file to Harpoon list
leaderar
Normal
Remove current file from Harpoon list
leaderac
Normal
Clear all Harpoon marks
leaderh
Normal
Toggle Harpoon quick menu
Alt+1 – 5
Normal
Jump to Harpoon file 1–5
Alt+n / Alt+p
Normal
Next / previous Harpoon file
Multi-Cursor
Keys
Mode
Action
Ctrl+n
Normal
Enter multi-cursor mode
Ctrl+↑
Normal / Visual
Add cursor above
Ctrl+↓
Normal / Visual
Add cursor below
j / k
Multi-cursor active
Move down/up and extend cursors
Esc
Multi-cursor active
Exit multi-cursor mode
In multi-cursor mode, entering Insert types at all cursor positions simultaneously.
Find & Replace / Rename
Keys
Mode
Action
leaderS
Normal
Open find & replace panel
leaderS
Visual
Open panel pre-filled with selection
:Find
Command
Same as leaderS
Panel navigation:
Keys
Context
Action
Tab
Any panel
Cycle focus: Find → Replace → Results
j / k
Results list
Navigate matches
y
Results list
Accept replacement for highlighted match
Y
Any panel
Accept replacement for all matches
Enter
Results list
Jump to match in file
Esc / q
Any panel
Close
When the find term matches an identifier with an active LSP client, Y uses LSP rename instead of regex substitution.
LSP
Keys
Mode
Action
K
Normal
Hover documentation
gd
Normal
Go to definition
gD
Normal
Go to declaration
gi
Normal
Go to implementation
go
Normal
Go to type definition
gr
Normal
Show references
gs
Normal
Signature help
leaderlr
Normal
Rename symbol (LSP)
leaderca
Normal
Code action
leaderle
Normal
Open diagnostic float
[d / ]d
Normal
Previous / next diagnostic
leaderih
Normal
Toggle inlay hints
leaderig
Normal
Add word to dictionary (ltex/typos)
Configured LSP Servers
Server
Languages
Notes
lua_ls
Lua
Auto-installed via Mason
pyright
Python
Auto-installed via Mason
ts_ls
TypeScript / JavaScript / Vue
Auto-installed via Mason
jdtls
Java
Per-project workspace, GoogleStyle format
kotlin_language_server
Kotlin
JVM target 17, type & param inlay hints
gopls
Go
gofumpt, full inlay hints, shadow analysis
clangd
C / C++ / Obj-C
Auto-installed via Mason
tinymist
Typst
Exports PDF on save
sourcekit-lsp
Swift / Obj-C
System binary; lazy-enabled on filetype
lemminx
XML
Auto-installed via Mason
Debugging (DAP)
Keys
Mode
Action
leaderdb
Normal
Toggle breakpoint
leaderdB
Normal
Set conditional breakpoint
leaderdc
Normal
Continue
leaderdn
Normal
Step over
leaderdi
Normal
Step into
leaderdo
Normal
Step out
leaderdr
Normal
Open REPL
leaderdl
Normal
Run last configuration
leaderdt
Normal
Terminate session
leaderdu
Normal
Toggle DAP UI
leaderdp
Normal
Debug Python method under cursor
Language
Adapter
Python
dap-python
Java
jdtls built-in
C / C++
codelldb
Swift
codelldb
Kotlin
kotlin-debug-adapter
The DAP UI opens automatically when a session starts and closes when it ends.
AI (avante.nvim)
Keys
Mode
Action
Alt+Enter
Insert
Accept inline suggestion
Alt+]
Insert
Next suggestion
Ctrl+]
Insert
Dismiss suggestion
Requires ANTHROPIC_API_KEY set in a .env file at the repo root. The file is auto-loaded on startup.
Themes
Keys / Command
Action
:ThemeSelect
Open interactive theme picker with Telescope live-preview
:Theme <name>
Switch directly to a named theme
Dashboard t
Open theme picker from the dashboard
Available theme names: Auto, Knew-pines, Noir-cat, Tokyo Night, Catppuccin, Gruvbox, Habamax. Selection persists to ~/.local/share/nvim/charvim_theme.
UI Plugins
noice.nvim: Replaces the command line with a centered popup.
alpha-nvim: Dashboard with ASCII art logo and a two-column quick-access grid.
which-key.nvim: Displays available keybindings in a popup using the modern preset.
Navigation and File Management
telescope.nvim and telescope-file-browser.nvim: Fuzzy finder and file browser that replaces netrw. Shows hidden files by default.
project.nvim: Project detection and management via Telescope.
harpoon (v2): Quick file bookmarking and navigation.
vim-tmux-navigator: Seamless navigation between Neovim splits and tmux panes.
Editing Tools
nvim-surround: Add, change, and delete surrounding pairs.