markdown · 6305 bytes Raw Blame History

Neovim Configuration Reference

Current keybinds and workflows for the lazy.nvim-based configuration. Optimized for LSP, Telescope, and productivity with Wayland clipboard support.


Modes Overview

Mode Description Enter From
Normal Navigation, commands Esc
Insert Insert/typing i, a, o, O
Visual Select text (char, line, block) v, V, Ctrl+v
Command Ex commands (:w, :q) :
Terminal Interactive terminal buffer :term, <C->`

Keybind Action
h/l Left / right one character
j/k Down / up one line
w/e/b Next word / end word / back a word
0 / $ Start / end of line
gg / G First / last line of file
{n}G Jump to line n
Ctrl+u/d Scroll half screen up/down
Ctrl+b/f Scroll full screen up/down
% Match brackets/parentheses
/text Search forward (n/N = next/prev)
?text Search backward (n/N = next/prev)
* / # Next/prev word under cursor

Editing Essentials

Keybind Action
i/a Insert before / after cursor
o/O New line below / above
x Delete character
dd Delete line
yy Yank (copy) line
p/P Paste after / before cursor
. Repeat last command
{n}{op} Repeat operation n times (5dd)

Visual Mode Tricks

  • v/V/Ctrl+v → char/line/block selections
  • Block mode (Ctrl+v + j/k):
    • I insert before selection (applies to all lines)
    • A append after selection

Custom Workflow Keymaps (Current Config)

Core Actions:

Keybind Action
<C-s> Save (normal/insert/visual)
<leader>q Quit
<Esc> Clear search highlights

Windows & Tabs:

Keybind Action
<leader>sv Vertical split
<leader>sh Horizontal split
<leader>to New tab

File Management:

Keybind Action
<leader>ff Telescope: find files
<leader>fg Telescope: live grep
<leader>fb Telescope: buffers
<leader>fh Telescope: help tags
<leader>fp Projects picker
- Oil file manager (float)

Terminal & Tasks:

Keybind Action
<C->` Toggle floating terminal
<leader>tr Run task (Overseer)
<leader>tt Task list toggle

Formatting:

Keybind Action
<leader>f Format buffer (Conform)

Visual Mode:

Keybind Action
J Move selected lines down
K Move selected lines up

LSP Workflow

Auto-installed servers: pyright, lua_ls, clangd, rust_analyzer, bashls, jsonls, yamlls, html, cssls, marksman, taplo

Keybind Action
gd Goto definition
gD Goto declaration
gi Goto implementation
gr List references
K Hover documentation
<leader>rn Rename symbol
<leader>ca Code action
<leader>fd Format buffer (LSP)

Git Integration

Gitsigns:

  • Inline diff signs in gutter
  • Hunk navigation and staging
  • :Gitsigns stage_hunk, :Gitsigns blame_line

LazyGit:

  • :LazyGit - Full-featured Git TUI

Telescope (Fuzzy Finder)

Keybind Action
<leader>ff Find files
<leader>fg Live grep
<leader>fb Buffers
<leader>fh Help tags
<leader>fp Projects

Inside Telescope:

  • <C-j>/<C-k> - Navigate results
  • / - Fuzzy filter in results

Treesitter (Syntax Engine)

Auto-installed parsers: bash, c, cpp, lua, python, rust, json, yaml, toml, html, css, javascript, typescript, markdown, markdown_inline, make, fish

  • Provides enhanced highlighting and indenting
  • Smart text objects and navigation

Formatting (Conform.nvim)

Auto-format on save (disabled for files >512KB)

Language Formatter(s)
Lua stylua
Python ruff_format, black
Shell scripts shfmt
Fish fish_indent
C/C++ clang_format
JS/TS prettier
JSON jq, prettier
YAML prettier
TOML taplo
HTML/CSS prettier
Markdown prettier

Debugging (nvim-dap + dap-ui)

Basic DAP setup included:

  • :DapToggleBreakpoint - Set/clear breakpoint
  • :DapContinue - Run/start debugging
  • :DapStepOver/Into/Out - Step through code
  • DAP UI auto-opens/closes with debug sessions

UI Enhancements

Current plugins:

  • TokyoNight theme (night style)
  • Lualine - Status line with global status
  • Which-key - Keybind hints
  • Dressing - Better UI for inputs/selects
  • Notify - Pretty notifications
  • Indent-blankline - Indentation guides
  • Comment.nvim - Easy commenting
  • nvim-surround - Surround text objects

Configuration Highlights

Leaders: <Space> (main), , (local)

Auto-features:

  • Format on save (files <512KB)
  • Cursor position restoration
  • Yank highlighting
  • Wayland clipboard integration

Project Management:

  • Project detection via .git, pyproject.toml, package.json, Makefile
  • Overseer task runner integration
  • Oil file manager with hidden files shown

Performance:

  • Removed noice.nvim for faster commands
  • Lazy loading for most plugins
  • Smart format-on-save size limits

View source
1 # Neovim Configuration Reference
2
3 Current keybinds and workflows for the lazy.nvim-based configuration. Optimized for LSP, Telescope, and productivity with Wayland clipboard support.
4
5 ---
6
7 ## Modes Overview
8
9 | Mode | Description | Enter From |
10 |-----------------|-----------------------------------------------|-----------------------|
11 | **Normal** | Navigation, commands | `Esc` |
12 | **Insert** | Insert/typing | `i`, `a`, `o`, `O` |
13 | **Visual** | Select text (char, line, block) | `v`, `V`, `Ctrl+v` |
14 | **Command** | Ex commands (`:w`, `:q`) | `:` |
15 | **Terminal** | Interactive terminal buffer | `:term`, `<C-`>` |
16
17 ---
18
19 ## Navigation Keybindings (Default)
20
21 | Keybind | Action |
22 |------------|--------------------------------------|
23 | `h`/`l` | Left / right one character |
24 | `j`/`k` | Down / up one line |
25 | `w`/`e`/`b`| Next word / end word / back a word |
26 | `0` / `$` | Start / end of line |
27 | `gg` / `G` | First / last line of file |
28 | `{n}G` | Jump to line n |
29 | `Ctrl+u/d` | Scroll half screen up/down |
30 | `Ctrl+b/f` | Scroll full screen up/down |
31 | `%` | Match brackets/parentheses |
32 | `/text` | Search forward (n/N = next/prev) |
33 | `?text` | Search backward (n/N = next/prev) |
34 | `*` / `#` | Next/prev word under cursor |
35
36 ---
37
38 ## Editing Essentials
39
40 | Keybind | Action |
41 |---------|------------------------------------------|
42 | `i`/`a` | Insert before / after cursor |
43 | `o`/`O` | New line below / above |
44 | `x` | Delete character |
45 | `dd` | Delete line |
46 | `yy` | Yank (copy) line |
47 | `p`/`P` | Paste after / before cursor |
48 | `.` | Repeat last command |
49 | `{n}{op}` | Repeat operation n times (`5dd`) |
50
51 ### Visual Mode Tricks
52 - `v`/`V`/`Ctrl+v` → char/line/block selections
53 - Block mode (`Ctrl+v` + `j/k`):
54 - `I` insert before selection (applies to all lines)
55 - `A` append after selection
56
57 ---
58
59 ## Custom Workflow Keymaps (Current Config)
60
61 **Core Actions:**
62 | Keybind | Action |
63 |---------|--------|
64 | `<C-s>` | Save (normal/insert/visual) |
65 | `<leader>q` | Quit |
66 | `<Esc>` | Clear search highlights |
67
68 **Windows & Tabs:**
69 | Keybind | Action |
70 |---------|--------|
71 | `<leader>sv` | Vertical split |
72 | `<leader>sh` | Horizontal split |
73 | `<leader>to` | New tab |
74
75 **File Management:**
76 | Keybind | Action |
77 |---------|--------|
78 | `<leader>ff` | Telescope: find files |
79 | `<leader>fg` | Telescope: live grep |
80 | `<leader>fb` | Telescope: buffers |
81 | `<leader>fh` | Telescope: help tags |
82 | `<leader>fp` | Projects picker |
83 | `-` | Oil file manager (float) |
84
85 **Terminal & Tasks:**
86 | Keybind | Action |
87 |---------|--------|
88 | `<C-`>` | Toggle floating terminal |
89 | `<leader>tr` | Run task (Overseer) |
90 | `<leader>tt` | Task list toggle |
91
92 **Formatting:**
93 | Keybind | Action |
94 |---------|--------|
95 | `<leader>f` | Format buffer (Conform) |
96
97 **Visual Mode:**
98 | Keybind | Action |
99 |---------|--------|
100 | `J` | Move selected lines down |
101 | `K` | Move selected lines up |
102
103 ---
104
105 ## LSP Workflow
106
107 **Auto-installed servers:**
108 `pyright`, `lua_ls`, `clangd`, `rust_analyzer`, `bashls`, `jsonls`, `yamlls`, `html`, `cssls`, `marksman`, `taplo`
109
110 | Keybind | Action |
111 |---------|--------|
112 | `gd` | Goto definition |
113 | `gD` | Goto declaration |
114 | `gi` | Goto implementation |
115 | `gr` | List references |
116 | `K` | Hover documentation |
117 | `<leader>rn` | Rename symbol |
118 | `<leader>ca` | Code action |
119 | `<leader>fd` | Format buffer (LSP) |
120
121 ---
122
123 ## Git Integration
124
125 **Gitsigns:**
126 - Inline diff signs in gutter
127 - Hunk navigation and staging
128 - `:Gitsigns stage_hunk`, `:Gitsigns blame_line`
129
130 **LazyGit:**
131 - `:LazyGit` - Full-featured Git TUI
132
133 ---
134
135 ## Telescope (Fuzzy Finder)
136
137 | Keybind | Action |
138 |---------|--------|
139 | `<leader>ff` | Find files |
140 | `<leader>fg` | Live grep |
141 | `<leader>fb` | Buffers |
142 | `<leader>fh` | Help tags |
143 | `<leader>fp` | Projects |
144
145 **Inside Telescope:**
146 - `<C-j>/<C-k>` - Navigate results
147 - `/` - Fuzzy filter in results
148
149 ---
150
151 ## Treesitter (Syntax Engine)
152
153 **Auto-installed parsers:**
154 `bash`, `c`, `cpp`, `lua`, `python`, `rust`, `json`, `yaml`, `toml`, `html`, `css`, `javascript`, `typescript`, `markdown`, `markdown_inline`, `make`, `fish`
155
156 - Provides enhanced highlighting and indenting
157 - Smart text objects and navigation
158
159 ---
160
161 ## Formatting (Conform.nvim)
162
163 **Auto-format on save** (disabled for files >512KB)
164
165 | Language | Formatter(s) |
166 |----------|-------------|
167 | Lua | stylua |
168 | Python | ruff_format, black |
169 | Shell scripts | shfmt |
170 | Fish | fish_indent |
171 | C/C++ | clang_format |
172 | JS/TS | prettier |
173 | JSON | jq, prettier |
174 | YAML | prettier |
175 | TOML | taplo |
176 | HTML/CSS | prettier |
177 | Markdown | prettier |
178
179 ---
180
181 ## Debugging (nvim-dap + dap-ui)
182
183 **Basic DAP setup included:**
184 - `:DapToggleBreakpoint` - Set/clear breakpoint
185 - `:DapContinue` - Run/start debugging
186 - `:DapStepOver/Into/Out` - Step through code
187 - DAP UI auto-opens/closes with debug sessions
188
189 ---
190
191 ## UI Enhancements
192
193 **Current plugins:**
194 - **TokyoNight theme** (night style)
195 - **Lualine** - Status line with global status
196 - **Which-key** - Keybind hints
197 - **Dressing** - Better UI for inputs/selects
198 - **Notify** - Pretty notifications
199 - **Indent-blankline** - Indentation guides
200 - **Comment.nvim** - Easy commenting
201 - **nvim-surround** - Surround text objects
202
203 ---
204
205 ## Configuration Highlights
206
207 **Leaders:** `<Space>` (main), `,` (local)
208
209 **Auto-features:**
210 - Format on save (files <512KB)
211 - Cursor position restoration
212 - Yank highlighting
213 - Wayland clipboard integration
214
215 **Project Management:**
216 - Project detection via `.git`, `pyproject.toml`, `package.json`, `Makefile`
217 - Overseer task runner integration
218 - Oil file manager with hidden files shown
219
220 **Performance:**
221 - Removed noice.nvim for faster commands
222 - Lazy loading for most plugins
223 - Smart format-on-save size limits
224
225 ---