Plugins¶
Overview of core LazyVim plugins and their functionality.
Plugin Manager: lazy.nvim¶
lazy.nvim manages all plugins with lazy-loading support.
Plugin UI¶
Open the plugin manager:
Keybindings in Lazy UI¶
| Key | Action |
|---|---|
| I | Install missing plugins |
| Shift+U | Update plugins |
| Shift+S | Sync (install, clean, update) |
| Shift+X | Clean unused plugins |
| C | Check for updates |
| L | View log |
| R | Restore from lockfile |
| P | Profile startup time |
| Q | Close |
Lockfile¶
Plugin versions are locked in lazy-lock.json. Commit this file to ensure reproducible setups.
Fuzzy Finder: Telescope¶
telescope.nvim provides fuzzy finding for everything.
Common Pickers¶
| Command | Keybinding | Description |
|---|---|---|
:Telescope find_files | Space+Space | Find files |
:Telescope live_grep | Space+/ | Search in files |
:Telescope buffers | Space+, | Switch buffer |
:Telescope oldfiles | Space+F+R | Recent files |
:Telescope git_files | Space+F+G | Git tracked files |
:Telescope help_tags | Space+S+H | Search help |
:Telescope keymaps | Space+S+K | Search keymaps |
Telescope Controls¶
| Key | Action |
|---|---|
| Ctrl+J / Ctrl+K | Navigate results |
| Enter | Open selection |
| Ctrl+X | Open in horizontal split |
| Ctrl+V | Open in vertical split |
| Ctrl+U | Scroll preview up |
| Ctrl+D | Scroll preview down |
| Tab | Toggle selection |
| Ctrl+Q | Send to quickfix |
File Explorer: Neo-tree¶
neo-tree.nvim provides a sidebar file explorer.
Commands¶
| Command | Keybinding | Description |
|---|---|---|
:Neotree toggle | Space+E | Toggle explorer |
:Neotree focus | Space+F+E | Focus explorer |
:Neotree git_status | - | Git status view |
:Neotree buffers | - | Buffer view |
Neo-tree Controls¶
| Key | Action |
|---|---|
| Enter / O | Open file |
| A | Add file/directory |
| D | Delete |
| R | Rename |
| C | Copy |
| M | Move |
| Y | Copy name |
| Shift+Y | Copy path |
| . | Toggle hidden |
| ? | Show help |
Syntax Highlighting: Treesitter¶
nvim-treesitter provides advanced syntax highlighting.
Install Parsers¶
Commands¶
| Command | Description |
|---|---|
:TSInstall <lang> | Install parser |
:TSUpdate | Update all parsers |
:TSInstallInfo | Show installed parsers |
:TSModuleInfo | Show module info |
Features¶
- Highlighting: Semantic, context-aware highlighting
- Indentation: Smart indentation
- Folding: Code folding based on syntax
- Text objects: Function and class text objects
Buffer Line: bufferline.nvim¶
bufferline.nvim shows open buffers as tabs.
Navigation¶
| Key | Action |
|---|---|
| Shift+H | Previous buffer |
| Shift+L | Next buffer |
| Space+B+D | Close buffer |
| Space+B+O | Close other buffers |
| Space+B+P | Toggle pin |
Status Line: lualine.nvim¶
lualine.nvim provides the status line at the bottom.
Displays: - Mode indicator - Git branch - File info - LSP status - Diagnostics - Cursor position
Keybinding Help: which-key.nvim¶
which-key.nvim shows available keybindings.
Press Space and wait to see all leader key combinations.
Configuration¶
-- lua/plugins/which-key.lua
return {
"folke/which-key.nvim",
opts = {
delay = 200, -- Delay before showing (ms)
},
}
Git Signs: gitsigns.nvim¶
gitsigns.nvim shows git status in the gutter.
Signs¶
| Sign | Meaning |
|---|---|
| (green) | Added lines |
| (blue) | Changed lines |
_ (red) | Deleted lines |
Commands¶
| Key | Action |
|---|---|
| ]+H | Next hunk |
| [+H | Previous hunk |
| Space+G+S | Stage hunk |
| Space+G+R | Reset hunk |
| Space+G+Shift+S | Stage buffer |
| Space+G+U | Undo stage hunk |
| Space+G+P | Preview hunk |
| Space+G+B | Blame line |
Commenting: Comment.nvim¶
Built-in commenting functionality.
| Key | Action |
|---|---|
| G+C+C | Toggle line comment |
| G+C (visual) | Toggle selection comment |
| G+B+C | Toggle block comment |
Auto Pairs: mini.pairs¶
Automatically closes brackets, quotes, etc.
| Type | Inserts |
|---|---|
( | () |
[ | [] |
{ | {} |
" | "" |
' | '' |
Surround: mini.surround¶
Add, delete, replace surroundings.
| Key | Action |
|---|---|
gza + motion + char | Add surrounding |
gzd + char | Delete surrounding |
gzr + old + new | Replace surrounding |
Examples:
gzaiw"- Surround word with quotesgzd"- Delete surrounding quotesgzr"'- Replace double quotes with single
LSP: nvim-lspconfig¶
Built-in LSP support with nvim-lspconfig.
Commands¶
| Command | Description |
|---|---|
:LspInfo | Show active LSP clients |
:LspStart | Start LSP |
:LspStop | Stop LSP |
:LspRestart | Restart LSP |
Completion: nvim-cmp¶
nvim-cmp provides auto-completion.
Controls¶
| Key | Action |
|---|---|
| Ctrl+Space | Trigger completion |
| Ctrl+N | Next item |
| Ctrl+P | Previous item |
| Enter | Accept |
| Ctrl+E | Close menu |
| Ctrl+D | Scroll docs down |
| Ctrl+F | Scroll docs up |
Sources¶
Completion sources (in priority order):
- LSP
- Luasnip (snippets)
- Buffer
- Path
Snippets: LuaSnip¶
LuaSnip provides snippet expansion.
| Key | Action |
|---|---|
| Tab | Expand or jump forward |
| Shift+Tab | Jump backward |
Mason: LSP Server Manager¶
mason.nvim manages LSP servers, linters, formatters.
Commands¶
| Command | Description |
|---|---|
:Mason | Open Mason UI |
:MasonInstall <pkg> | Install package |
:MasonUninstall <pkg> | Uninstall package |
:MasonUpdate | Update packages |
Mason UI¶
| Key | Action |
|---|---|
| I | Install |
| Shift+X | Uninstall |
| U | Update |
| Ctrl+C | Cancel |
Diagnostics: trouble.nvim¶
trouble.nvim shows diagnostics in a list.
| Key | Action |
|---|---|
| Space+X+X | Document diagnostics |
| Space+X+Shift+X | Workspace diagnostics |
| Space+X+L | Location list |
| Space+X+Q | Quickfix list |
Terminal: toggleterm¶
Integrated terminal support.
| Key | Action |
|---|---|
| Ctrl+/ | Toggle terminal |
| Space+F+T | Float terminal (root) |
| Space+F+Shift+T | Float terminal (cwd) |
Inside terminal, press Esc+Esc or Ctrl+\+\ to exit terminal mode.
Indent Guides: indent-blankline¶
Shows vertical indent guides.
Customize: