doc: Update documentation
- Moved docs to docs/ - All documentation files moved: - docs/KEYMAPS.md - Complete keybinding reference(rewritten) - docs/PLUGINS.md - Plugin list - docs/NATIVE_AUTO_WRAPPER_GUIDE.md - Text wrapping guide - docs/TELESCOPE_TO_SNACKS_MIGRATION.md - Migration notes - docs/keyboard_mappings.md - QMK keyboard layout - docs/CHANGELOG_OLD.md - Previous changelog archived - Rewrote docs/KEYMAPS.md - Based on the actual current keymap files. Removed references to deleted plugins (flash, harpoon, dial, screenkey, persistence, LSPSaga). Updated LSP keymaps to reflect fzf-lua, DAP keymaps to reflect plugin-side registration, and added CopilotChat and g keymaps. - Updated README.md - Fixed all doc links to docs/, removed harpoon/flash/dial/screenkey/persistence references, updated essential keymaps to current reality (fzf-lua for LSP, Snacks for navigation, <leader>dcr for debug, <leader>jd for dynamic attach), added Bun debug support mention. - Created CHANGELOG.md at root with: - 2026-02-10: Documentation restructure - 2026-02-08: hlchunk, lspconfig, lualine, ufo fixes - 2026-02-05: Major cleanup - 15+ plugins removed, core refactors, keymap rework, DAP/Copilot reorganization, fzf-lua migration for LSP - 2026-01-13/15: Bug fixes and version bumps - 2026-01-10: Previous changelog entries preserved
This commit is contained in:
295
CHANGELOG.md
295
CHANGELOG.md
@@ -6,80 +6,101 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## [Unreleased]
|
## [2026-02-10]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- **Python Debugger (debugpy)**: Full Python debugging support with multiple configurations
|
- **Documentation restructure**: Moved all documentation into `docs/` directory
|
||||||
- Launch File - Debug current Python file
|
- `docs/KEYMAPS.md` - Complete keybinding reference (rewritten from actual keymap files)
|
||||||
- Launch with Arguments - Debug with custom arguments
|
- `docs/PLUGINS.md` - Plugin list and descriptions
|
||||||
- Attach Remote - Attach to debugpy server (port 5678)
|
- `docs/NATIVE_AUTO_WRAPPER_GUIDE.md` - Text wrapping configuration
|
||||||
- Django - Debug Django with `manage.py runserver`
|
- `docs/TELESCOPE_TO_SNACKS_MIGRATION.md` - Migration notes
|
||||||
- FastAPI - Debug FastAPI with uvicorn
|
- `docs/keyboard_mappings.md` - QMK keyboard layout reference
|
||||||
- Flask - Debug Flask application
|
- `docs/CHANGELOG_OLD.md` - Previous changelog archive
|
||||||
- **Node.js/NestJS Debug Configurations**: Extended TypeScript/JavaScript debugging
|
- **Keymap conflict detection script**: `scripts/detect_keymap_conflicts.lua`
|
||||||
- Launch NestJS (`dist/main.js`) with source maps
|
|
||||||
- Launch Current File
|
|
||||||
- Launch with ts-node (debug TypeScript directly)
|
|
||||||
- Attach to NestJS (port 9229)
|
|
||||||
- Attach to Process (pick from running processes)
|
|
||||||
- **Mason Debug Adapters**: Added `debugpy` and `js-debug-adapter` to auto-install list
|
|
||||||
- **README Documentation**: Added comprehensive "Debugging Setup" section with all configurations
|
|
||||||
- **Avante.nvim AI Assistant**: Added Avante.nvim with local LLM support to README documentation
|
|
||||||
- **Bash Treesitter Parser**: Installed bash parser for noice.nvim cmdline highlighting
|
|
||||||
- **Local Configuration Support**: `local.lua` is now loaded at startup and exposed via `vim.g.cargdev_local`
|
|
||||||
- Enables machine-specific paths without hardcoding
|
|
||||||
- Safe loading with `pcall` (won't error if file doesn't exist)
|
|
||||||
- Plugins gracefully skip if required config is missing
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **Avante Plugin**: Now uses `local.lua` for all paths and settings
|
- **README.md**: Updated documentation links to point to `docs/`, removed references to deleted plugins (flash, harpoon, dial, screenkey, persistence, mini.animate), updated keymap tables to reflect current state
|
||||||
- `avante_dev_path` for plugin directory
|
- **KEYMAPS.md**: Complete rewrite based on actual current keymap definitions
|
||||||
- `avante_endpoint`, `avante_api_key_name`, `avante_model` for provider config
|
|
||||||
- **IdeaDrop Plugin**: Now uses `IDEA_DIR` from `local.lua` instead of environment variable
|
|
||||||
|
|
||||||
### Removed
|
---
|
||||||
- **Hardcoded Paths**: Removed all hardcoded user paths from plugin configs
|
|
||||||
- `avante.lua` - uses `local.lua` values
|
## [2026-02-08]
|
||||||
- `ideaMap.lua` - uses `local.lua` values
|
|
||||||
- `leetcode.lua` - removed commented hardcoded path
|
|
||||||
- `lazygit.lua` - removed commented hardcoded path
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- **Java Debug Adapter Paths**: Fixed incorrect paths in `ftplugin/java.lua`
|
- **hlchunk.nvim**: Fixed rendering issues with scope highlighting
|
||||||
- Changed `java-debug` → `java-debug-adapter/extension/server/`
|
- **lspconfig**: Fixed LSP configuration issues
|
||||||
- Changed `vscode-java-test` → `java-test/extension/server/`
|
- **lualine**: Fixed statusline rendering and word count display
|
||||||
- **Node.js DAP Adapter**: Fixed js-debug-adapter configuration in `dap.lua`
|
- **nvim-ufo**: Fixed folding behavior and peek integration
|
||||||
- Changed adapter type from `executable` to `server` (required by js-debug-adapter)
|
|
||||||
- Renamed adapter from `node` to `pwa-node` (standard DAP name)
|
|
||||||
- Added proper source map resolution and skipFiles patterns
|
|
||||||
- **Auto-session Lazy Loading**: Changed from `event = "VeryLazy"` to `lazy = false` to enable session auto-restore on startup
|
|
||||||
- **Alpha Dashboard Config**: Fixed `enable` to `enabled` (correct lazy.nvim spec key)
|
|
||||||
- **Snacks vs Alpha Conflict**: Disabled `Snacks.dashboard` in favor of `alpha-nvim` for CARGDEV branding
|
|
||||||
|
|
||||||
### Added
|
---
|
||||||
- **Java Debug & Run Keymaps**: New keybindings for Java development
|
|
||||||
- `<leader>jd` - Debug Class (DAP)
|
## [2026-02-05] - Major Cleanup & Refactor
|
||||||
- `<leader>jt` - Test Class
|
|
||||||
- `<leader>jn` - Test Nearest Method
|
### Removed - Plugins
|
||||||
- `<leader>jr` - Run Java File
|
- **codetyper.lua**: Removed locally-developed plugin (reduced maintenance surface)
|
||||||
- `<leader>jm` - Run Maven Project
|
- **curls.lua**: Removed local HTTP/curl plugin (replaced by kulala)
|
||||||
- `<leader>jg` - Run Gradle Project
|
- **edgy.lua**: Removed window layout management plugin
|
||||||
- **Java Debug Dependencies**: Added `java-debug-adapter` and `java-test` to Mason ensure_installed
|
- **flash.lua**: Removed flash.nvim jump plugin
|
||||||
|
- **sudoku.lua**: Removed sudoku game plugin
|
||||||
|
- **screenkey.lua**: Removed screenkey plugin (show keypresses)
|
||||||
|
- **persistence.lua**: Removed persistence session management
|
||||||
|
- **auto-session.lua**: Removed auto-session plugin
|
||||||
|
- **dial.lua**: Removed smart increment/decrement plugin
|
||||||
|
- **mini-animate.lua**: Removed smooth animations plugin
|
||||||
|
- **harpoon.lua**: Removed harpoon quick file marks
|
||||||
|
- **colorful-winsep.lua**: Removed colorful window separators
|
||||||
|
- **dressing.lua**: Removed vim.ui improvements (handled by snacks/noice)
|
||||||
|
- **ship.lua**: Removed ship plugin
|
||||||
|
- **fileOperations.lua**: Removed file operations plugin
|
||||||
|
|
||||||
|
### Removed - Keymaps & Docs
|
||||||
|
- **keymaps/README.md**: Removed stale keymaps documentation
|
||||||
|
- **keymaps/sudoku.lua**: Removed sudoku keymaps
|
||||||
|
- **NVIM_PERFORMANCE_ANALYSIS.md**: Removed performance analysis doc
|
||||||
|
|
||||||
|
### Changed - Core Refactors
|
||||||
|
- **Notification manager** (`notification_manager.lua`): Major refactor with local aliases, improved docs, dashboard-aware handling, nvim-notify fallback, safer notification tracking and cleanup
|
||||||
|
- **Performance monitor** (`performance_monitor.lua`): Refactored with local references and better notify usage
|
||||||
|
- **Project commands** (`project_commands.lua`): Added docs, local API/fn/notify aliases, clearer RunProject/DebugProject commands
|
||||||
|
- **Terminal helper** (`openTerminal.lua`): Module docs and refactored with local cmd/api aliases
|
||||||
|
|
||||||
|
### Changed - Keymaps
|
||||||
|
- **Reworked keymap files**: Added docstrings to all keymap modules, renamed/moved mappings to avoid conflicts
|
||||||
|
- **DAP keymaps**: Moved all DAP keymaps from `keymaps/dap.lua` into `plugins/dap.lua` config function (ensures nvim-dap is loaded before keybindings reference it)
|
||||||
|
- **Quickfix keymaps**: Moved from `<leader>q` prefix to `<leader>x` prefix to avoid conflict with quit
|
||||||
|
- **LSP navigation**: Switched from Snacks pickers to fzf-lua for `gd`, `gi`, `gr`, `gt`, symbols, and diagnostics
|
||||||
|
|
||||||
|
### Changed - Plugins & Integrations
|
||||||
|
- **DAP** (`dap.lua`): Added Bun launch config, dynamic debug attach (`<leader>jd` with port input), moved all DAP keymaps here
|
||||||
|
- **Copilot** (`copilot.lua`): Reorganized Copilot/Copilot-cmp/CopilotChat config, added copilot source to nvim-cmp, added CopilotChat keymaps (`<leader>cc`, `<leader>cq`, `<leader>ce`, `<leader>cr`, `<leader>cf`, `<leader>co`, `<leader>cd`, `<leader>ct`, `<leader>cm`)
|
||||||
|
- **nvim-cmp** (`nvim-cmp.lua`): Added copilot completion source
|
||||||
|
- **Formatting** (`formatting.lua`): Disabled google-java-format fallback for Java (prefer JDTLS formatter)
|
||||||
|
- **Java/JDTLS** (`ftplugin/java.lua`): Pinned to JDK 25, switched to mac_arm config, enabled LSP formatter, declared multiple runtimes (JavaSE-17, JavaSE-25)
|
||||||
|
- **nvim-tree**: Expanded configuration with more custom mappings
|
||||||
|
- **bufferline**: Updated configuration
|
||||||
|
- **hlchunk**: Adjusted scope highlighting settings
|
||||||
|
- **linting**: Configuration tweaks
|
||||||
|
- **vim-visual-multi**: Updated configuration
|
||||||
|
|
||||||
|
### Added - Plugin Stubs
|
||||||
|
Added minimal plugin configuration stubs for better organization (each plugin in its own file):
|
||||||
|
`autopairs`, `colorscheme`, `comments`, `crates`, `dadbod`, `diffview`, `dropbar`, `fidget`, `flutter`, `git-blame`, `gitsigns`, `grug-far`, `hardtime`, `ideaMap`, `inc-rename`, `indent-blankline`, `kulala`, `lazygit`, `leetcode`, `lspsaga`, `marks`, `mcphub`, `modicator`, `navbuddy`, `neogit`, `noice`, `nvim-cmp`, `nvim-highlight-colors`, `nvim-jdtls`, `nvim-lightbulb`, `nvim-treesitter-context`, `nvim-treesitter-text-objects`, `nvim-ts-autotag`, `obsidian`, `octo`, `outline`, `overseer`, `package-info`, `portal`, `precognition`, `reactive`, `regexplainer`, `render-markdown`, `satellite`, `snacks`, `ssr`, `substitute`, `surround`, `telescope`, `termcolor`, `tiny-inline-diagnostic`, `tmux`, `todo-comments`, `transparence`, `treesitter`, `treesj`, `trouble`, `ts-comments`, `twilight`, `undotree`, `venv-selector`, `vim-maximizer`, `vimtex`, `wakatime`, `which-key`, `yaml`, `yanky`, `zen-mode`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [2026-01-15] - Bumping Version
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **Colorscheme Configuration**: Enhanced `cargdev-cyberpunk` setup
|
- General version bump and plugin updates
|
||||||
- Enabled transparency
|
|
||||||
- Enabled italic comments
|
---
|
||||||
- Enabled bold keywords, functions, and types
|
|
||||||
- Enabled terminal colors
|
## [2026-01-13] - Fixing Issues
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- **Java DAP Configuration**: Fixed debug adapter not loading
|
- Multiple bug fixes across configuration
|
||||||
- Changed `bundles = {}` to `bundles = bundles` to properly load debug JARs
|
- Fixed issues with closing Neovim
|
||||||
- Added `on_attach` callback to setup DAP after JDTLS attaches
|
- Fixed rendering issues
|
||||||
- Enables hot code replacement during debugging
|
|
||||||
- **Broken Java DAP Adapter**: Removed manual Java adapter with undefined `port` variable
|
|
||||||
- Now handled automatically by nvim-jdtls via `jdtls.setup_dap()`
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -87,73 +108,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
- **Custom Colorscheme**: Using `cargdev-cyberpunk` theme
|
- **Custom Colorscheme**: Using `cargdev-cyberpunk` theme
|
||||||
- Vibrant, high-contrast cyberpunk aesthetic with neon colors
|
|
||||||
- Hot pink keywords, electric purple types, cyan strings, green functions
|
|
||||||
- Full TypeScript/LSP/Treesitter support
|
|
||||||
- Deep blue backgrounds with neon accents
|
|
||||||
- Loaded with high priority for consistent UI
|
|
||||||
- **Which-Key Group Names**: Added organized group names for better keymap discoverability
|
- **Which-Key Group Names**: Added organized group names for better keymap discoverability
|
||||||
- Groups: Buffer, Code/Copilot, Debug, Explorer, Find/Files, Git, LSP, Format, Quickfix, Session, Tab/Terminal, Trouble, Copilot Chat
|
- **Auto-Format on Save**: Enabled with conform.nvim (skips sql, markdown, node_modules)
|
||||||
- **Auto-Format on Save**: Enabled smart auto-formatting with conform.nvim
|
- **Diagnostic Float on Hover**: Diagnostics appear automatically on cursor hold
|
||||||
- Skips certain filetypes (sql, markdown)
|
- **Safe Buffer Close**: `<leader>bd` prompts for unsaved changes
|
||||||
- Skips files in node_modules
|
- **Quickfix Navigation Keymaps**: `<leader>qn/qp/qo/qq/qf/ql`
|
||||||
- Added `:FormatToggle` command to enable/disable
|
- **Location List Navigation**: `<leader>ln/lp/lo/lq`
|
||||||
- **Diagnostic Float on Hover**: Diagnostics now appear automatically when cursor holds
|
- **Configuration Validation**: Startup checks for Neovim version and required executables
|
||||||
- **Safe Buffer Close**: `<leader>bd` now prompts for unsaved changes
|
- **Plugin Update Notifications**: Daily lazy.nvim update check
|
||||||
- Options: Save & Close, Discard & Close, Cancel
|
|
||||||
- `<leader>bD` for force close without confirmation
|
|
||||||
- **Quickfix Navigation Keymaps**:
|
|
||||||
- `<leader>qn` - Next quickfix item
|
|
||||||
- `<leader>qp` - Previous quickfix item
|
|
||||||
- `<leader>qo` - Open quickfix list
|
|
||||||
- `<leader>qq` - Close quickfix list
|
|
||||||
- `<leader>qf` - First quickfix item
|
|
||||||
- `<leader>ql` - Last quickfix item
|
|
||||||
- **Location List Navigation Keymaps**:
|
|
||||||
- `<leader>ln` - Next location item
|
|
||||||
- `<leader>lp` - Previous location item
|
|
||||||
- `<leader>lo` - Open location list
|
|
||||||
- `<leader>lq` - Close location list
|
|
||||||
- **Configuration Validation**: Startup checks for:
|
|
||||||
- Neovim version (0.9+ recommended)
|
|
||||||
- Required executables (git, rg, node)
|
|
||||||
- **Plugin Update Notifications**: Lazy.nvim now notifies about available updates (daily check)
|
|
||||||
- **CheckConfig Command**: Quick access to health checks
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- **Session Keymaps**: Renamed to avoid conflicts with substitute
|
- **Session Keymaps**: `<leader>ss` -> `<leader>sS`, `<leader>sr` -> `<leader>sR`
|
||||||
- `<leader>ss` → `<leader>sS` (Session Save)
|
- **Substitute Keymaps**: `<leader>ss` -> `<leader>sl`
|
||||||
- `<leader>sr` → `<leader>sR` (Session Restore)
|
|
||||||
- **Substitute Keymaps**: Reorganized to avoid conflicts
|
|
||||||
- `<leader>ss` → `<leader>sl` (Substitute Line)
|
|
||||||
- `<leader>sub` remains for substitute with motion
|
|
||||||
- `<leader>S` remains for substitute to end of line
|
|
||||||
- **Keymap Descriptions**: Standardized format (e.g., "Session: Save", "Substitute: Line")
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- **Duplicate Window Management Keymaps**: Removed duplicates from `personal.lua`, centralized in `window.lua`
|
- Duplicate window management keymaps (centralized in `window.lua`)
|
||||||
- **Duplicate Resize Keymaps**: Removed duplicates, centralized in `window.lua`
|
- Duplicate resize keymaps
|
||||||
- **Redundant Filetype Detection**: Now only runs if filetype is not already detected
|
- Redundant filetype detection
|
||||||
- **Double Function Loading**: Functions now load once on VimEnter with flag protection
|
- Double function loading
|
||||||
- **Duplicate synmaxcol Setting**: Removed duplicate (was 240 then 200), kept 200
|
- Duplicate settings (synmaxcol, foldmethod, foldlevel)
|
||||||
- **Duplicate foldmethod Setting**: Removed duplicate, kept `indent` (faster than `syntax`)
|
|
||||||
- **Duplicate foldlevel Setting**: Removed duplicate setting
|
|
||||||
- **Environment Variable Validation**: `IDEA_DIR` now validated before Obsidian link setup
|
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
- **Temporary Files**:
|
- Temporary files (`kkk`, `cleanup_deprecated_adapters.lua`)
|
||||||
- `kkk` - Unknown purpose temporary file
|
- IMPROVEMENTS.md (all issues resolved)
|
||||||
- `cleanup_deprecated_adapters.lua` - Cleanup script no longer needed
|
- Commented-out code (tmux keymaps, project_config bootstrap)
|
||||||
- **IMPROVEMENTS.md**: All issues resolved, file removed
|
|
||||||
- **Commented Code**:
|
|
||||||
- Tmux navigation keymaps from `personal.lua`
|
|
||||||
- Commented `x` keymap explanation from `general.lua`
|
|
||||||
- Commented `project_config` bootstrap from `init.lua`
|
|
||||||
|
|
||||||
### Performance
|
|
||||||
- Optimized filetype detection (conditional execution)
|
|
||||||
- Reduced redundant option settings
|
|
||||||
- Single function loading instead of double
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -166,7 +144,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- Snacks.nvim + Telescope file navigation
|
- Snacks.nvim + Telescope file navigation
|
||||||
- nvim-tree file explorer
|
- nvim-tree file explorer
|
||||||
- LazyGit integration
|
- LazyGit integration
|
||||||
- GitHub Copilot + Copilot Chat
|
- GitHub Copilot
|
||||||
- DAP debugging with UI
|
- DAP debugging with UI
|
||||||
- Conform.nvim formatting
|
- Conform.nvim formatting
|
||||||
- Trouble.nvim diagnostics
|
- Trouble.nvim diagnostics
|
||||||
@@ -174,73 +152,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
- Custom lualine theme with word count
|
- Custom lualine theme with word count
|
||||||
|
|
||||||
### Migration History
|
### Migration History
|
||||||
- Migrated from Telescope to Snacks for primary navigation
|
- Migrated from Telescope to Snacks for primary file navigation
|
||||||
- Kept Telescope for git-specific features
|
- Kept Telescope for git-specific features and TODOs
|
||||||
- See [TELESCOPE_TO_SNACKS_MIGRATION.md](./TELESCOPE_TO_SNACKS_MIGRATION.md) for details
|
- See [Telescope to Snacks Migration](./docs/TELESCOPE_TO_SNACKS_MIGRATION.md) for details
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## File Changes Summary
|
*Last Updated: February 10, 2026*
|
||||||
|
|
||||||
### Modified Files
|
|
||||||
| File | Changes |
|
|
||||||
|------|---------|
|
|
||||||
| `lua/cargdev/plugins/dap.lua` | Fixed Node.js adapter, added Python debugpy config |
|
|
||||||
| `ftplugin/java.lua` | Fixed java-debug-adapter and java-test paths |
|
|
||||||
| `lua/cargdev/plugins/lsp/mason.lua` | Added debugpy and js-debug-adapter to ensure_installed |
|
|
||||||
| `README.md` | Added Debugging Setup section with keymaps and configurations |
|
|
||||||
| `lua/cargdev/core/keymaps/README.md` | Added dap.lua and other keymap files to structure |
|
|
||||||
| `lua/cargdev/core/keymaps/personal.lua` | Removed duplicates, added quickfix/location keymaps, safe buffer close |
|
|
||||||
| `lua/cargdev/core/keymaps/plugins.lua` | Fixed session/substitute keymap conflicts |
|
|
||||||
| `lua/cargdev/core/keymaps/general.lua` | Added vault_path validation, removed commented code |
|
|
||||||
| `lua/cargdev/core/keymaps/window.lua` | Centralized window management keymaps |
|
|
||||||
| `lua/cargdev/core/init.lua` | Fixed double loading, added diagnostic hover, config validation, loads `local.lua` |
|
|
||||||
| `lua/cargdev/plugins/avante.lua` | Uses `local.lua` for paths and settings, removed hardcoded values |
|
|
||||||
| `lua/cargdev/plugins/ideaMap.lua` | Uses `local.lua` for `IDEA_DIR`, removed env var fallback |
|
|
||||||
| `lua/cargdev/plugins/leetcode.lua` | Removed commented hardcoded path |
|
|
||||||
| `lua/cargdev/plugins/lazygit.lua` | Removed commented hardcoded path |
|
|
||||||
| `lua/cargdev/core/options.lua` | Removed duplicate settings (synmaxcol, foldmethod, foldlevel) |
|
|
||||||
| `lua/cargdev/plugins/which-key.lua` | Added group names configuration |
|
|
||||||
| `lua/cargdev/plugins/formatting.lua` | Enabled auto-format on save with smart filtering |
|
|
||||||
| `lua/cargdev/lazy.lua` | Enabled plugin update notifications |
|
|
||||||
| `README.md` | Complete rewrite with proper documentation |
|
|
||||||
|
|
||||||
### Deleted Files
|
|
||||||
| File | Reason |
|
|
||||||
|------|--------|
|
|
||||||
| `kkk` | Temporary file, unknown purpose |
|
|
||||||
| `cleanup_deprecated_adapters.lua` | One-time cleanup script, no longer needed |
|
|
||||||
| `IMPROVEMENTS.md` | All issues resolved |
|
|
||||||
|
|
||||||
### New Files
|
|
||||||
| File | Purpose |
|
|
||||||
|------|---------|
|
|
||||||
| `CHANGELOG.md` | Track configuration changes |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Keymap Reference
|
|
||||||
|
|
||||||
### New/Changed Keymaps
|
|
||||||
|
|
||||||
| Keymap | Action | File |
|
|
||||||
|--------|--------|------|
|
|
||||||
| `<leader>sS` | Session: Save | plugins.lua |
|
|
||||||
| `<leader>sR` | Session: Restore | plugins.lua |
|
|
||||||
| `<leader>sl` | Substitute: Line | plugins.lua |
|
|
||||||
| `<leader>bd` | Buffer: Close (safe) | personal.lua |
|
|
||||||
| `<leader>bD` | Buffer: Force close | personal.lua |
|
|
||||||
| `<leader>qn` | Quickfix: Next | personal.lua |
|
|
||||||
| `<leader>qp` | Quickfix: Previous | personal.lua |
|
|
||||||
| `<leader>qo` | Quickfix: Open | personal.lua |
|
|
||||||
| `<leader>qq` | Quickfix: Close | personal.lua |
|
|
||||||
| `<leader>qf` | Quickfix: First | personal.lua |
|
|
||||||
| `<leader>ql` | Quickfix: Last | personal.lua |
|
|
||||||
| `<leader>ln` | Location: Next | personal.lua |
|
|
||||||
| `<leader>lp` | Location: Previous | personal.lua |
|
|
||||||
| `<leader>lo` | Location: Open | personal.lua |
|
|
||||||
| `<leader>lq` | Location: Close | personal.lua |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
*Last Updated: January 13, 2026*
|
|
||||||
|
|||||||
496
KEYMAPS.md
496
KEYMAPS.md
@@ -1,496 +0,0 @@
|
|||||||
# Complete Keymaps Reference
|
|
||||||
|
|
||||||
**Leader Key: `<Space>`**
|
|
||||||
|
|
||||||
## Table of Contents
|
|
||||||
- [Navigation](#navigation)
|
|
||||||
- [File Management](#file-management)
|
|
||||||
- [Editing](#editing)
|
|
||||||
- [LSP & Code Intelligence](#lsp--code-intelligence)
|
|
||||||
- [Git](#git)
|
|
||||||
- [Debugging](#debugging)
|
|
||||||
- [Search & Replace](#search--replace)
|
|
||||||
- [Tasks & HTTP](#tasks--http)
|
|
||||||
- [UI & Productivity](#ui--productivity)
|
|
||||||
- [Language Specific](#language-specific)
|
|
||||||
- [Window Management](#window-management)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Navigation
|
|
||||||
|
|
||||||
### Flash (Jump Anywhere)
|
|
||||||
| Key | Mode | Action |
|
|
||||||
|-----|------|--------|
|
|
||||||
| `s` | n, x, o | Flash jump (type chars to jump) |
|
|
||||||
| `S` | n, x, o | Flash treesitter select |
|
|
||||||
| `r` | o | Remote flash |
|
|
||||||
| `R` | o, x | Treesitter search |
|
|
||||||
| `<C-s>` | c | Toggle flash in search |
|
|
||||||
|
|
||||||
### Harpoon (Quick File Marks)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>ha` | Add current file to harpoon |
|
|
||||||
| `<leader>hh` | Open harpoon menu |
|
|
||||||
| `<leader>hp` | Previous harpoon file |
|
|
||||||
| `<leader>hn` | Next harpoon file |
|
|
||||||
|
|
||||||
### Portal (Jumplist Navigation)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>pj` | Portal jumplist backward |
|
|
||||||
| `<leader>pk` | Portal jumplist forward |
|
|
||||||
| `<leader>pc` | Portal changelist backward |
|
|
||||||
| `<leader>pq` | Portal quickfix backward |
|
|
||||||
|
|
||||||
### Navbuddy (Code Structure)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>nb` | Open Navbuddy |
|
|
||||||
|
|
||||||
Inside Navbuddy:
|
|
||||||
- `h/j/k/l` - Navigate
|
|
||||||
- `<Enter>` - Select
|
|
||||||
- `0` - Go to root
|
|
||||||
- `q` - Close
|
|
||||||
|
|
||||||
### Telescope
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>ff` | Find files |
|
|
||||||
| `<leader>fs` | Live grep (search text) |
|
|
||||||
| `<leader>fg` | Git files |
|
|
||||||
| `<leader>fF` | Find all files |
|
|
||||||
| `<leader>fr` | Recent files |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## File Management
|
|
||||||
|
|
||||||
### File Explorer (nvim-tree)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>e` | Toggle file explorer |
|
|
||||||
| `<leader>ee` | Toggle file explorer |
|
|
||||||
| `<leader>nt` | Find current file in tree |
|
|
||||||
| `<leader>ec` | Collapse file explorer |
|
|
||||||
| `<leader>er` | Refresh file explorer |
|
|
||||||
|
|
||||||
Inside nvim-tree:
|
|
||||||
- `o` - Open file
|
|
||||||
- `s` - Open in vertical split
|
|
||||||
- `i` - Open in horizontal split
|
|
||||||
- `a` - Create new file
|
|
||||||
- `r` - Rename
|
|
||||||
- `d` - Delete
|
|
||||||
- `x` - Cut
|
|
||||||
- `y` - Copy
|
|
||||||
- `p` - Paste
|
|
||||||
- `u` - Go up one directory
|
|
||||||
|
|
||||||
### Buffers
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<S-l>` | Next buffer |
|
|
||||||
| `<S-h>` | Previous buffer |
|
|
||||||
| `<leader>bd` | Close buffer |
|
|
||||||
| `<leader>bD` | Force close buffer |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Editing
|
|
||||||
|
|
||||||
### Multi-Cursor (vim-visual-multi)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<C-d>` | Select word under cursor / Add next occurrence |
|
|
||||||
| `<C-Down>` | Add cursor below |
|
|
||||||
| `<C-Up>` | Add cursor above |
|
|
||||||
| `<C-S-l>` | Select all occurrences |
|
|
||||||
| `<C-x>` | Skip current match |
|
|
||||||
| `<C-p>` | Remove current cursor |
|
|
||||||
| `<Esc>` | Exit multi-cursor |
|
|
||||||
|
|
||||||
### Yanky (Yank Ring)
|
|
||||||
| Key | Mode | Action |
|
|
||||||
|-----|------|--------|
|
|
||||||
| `y` | n, x | Yank |
|
|
||||||
| `p` | n, x | Put after |
|
|
||||||
| `P` | n, x | Put before |
|
|
||||||
| `<leader>yh` | n | Open yank history |
|
|
||||||
| `]p` | n | Put indented after |
|
|
||||||
| `[p` | n | Put indented before |
|
|
||||||
|
|
||||||
### Treesj (Split/Join)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>tj` | Toggle split/join |
|
|
||||||
| `<leader>ts` | Split code block |
|
|
||||||
| `<leader>tJ` | Join code block |
|
|
||||||
|
|
||||||
### Dial (Smart Increment)
|
|
||||||
| Key | Mode | Action |
|
|
||||||
|-----|------|--------|
|
|
||||||
| `<C-a>` | n, v | Increment |
|
|
||||||
| `<C-x>` | n, v | Decrement |
|
|
||||||
| `g<C-a>` | n, v | Increment (sequence) |
|
|
||||||
| `g<C-x>` | n, v | Decrement (sequence) |
|
|
||||||
|
|
||||||
Works on: numbers, booleans, dates, CSS units, HTTP methods, operators, and more!
|
|
||||||
|
|
||||||
### Surround
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `ys{motion}{char}` | Add surround |
|
|
||||||
| `ds{char}` | Delete surround |
|
|
||||||
| `cs{old}{new}` | Change surround |
|
|
||||||
|
|
||||||
Examples:
|
|
||||||
- `ysiw"` - Surround word with quotes
|
|
||||||
- `ds"` - Delete surrounding quotes
|
|
||||||
- `cs"'` - Change " to '
|
|
||||||
|
|
||||||
### Comments
|
|
||||||
| Key | Mode | Action |
|
|
||||||
|-----|------|--------|
|
|
||||||
| `gcc` | n | Toggle line comment |
|
|
||||||
| `gc` | v | Toggle comment selection |
|
|
||||||
| `gbc` | n | Toggle block comment |
|
|
||||||
| `<leader>/` | n, v | Toggle comment |
|
|
||||||
|
|
||||||
### Substitute
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>sub` | Substitute with motion |
|
|
||||||
| `<leader>sl` | Substitute line |
|
|
||||||
| `<leader>S` | Substitute to end of line |
|
|
||||||
|
|
||||||
### Undo Tree
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>tu` | Toggle undo tree |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## LSP & Code Intelligence
|
|
||||||
|
|
||||||
### LSP Saga
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `K` | Hover documentation |
|
|
||||||
| `gd` | Peek definition |
|
|
||||||
| `gD` | Go to definition |
|
|
||||||
| `gt` | Peek type definition |
|
|
||||||
| `gT` | Go to type definition |
|
|
||||||
| `gh` | LSP finder (refs + impl) |
|
|
||||||
| `gr` | Rename |
|
|
||||||
| `gR` | Rename (project-wide) |
|
|
||||||
| `<leader>ca` | Code actions |
|
|
||||||
| `<leader>sl` | Show line diagnostics |
|
|
||||||
| `<leader>sc` | Show cursor diagnostics |
|
|
||||||
| `<leader>sb` | Show buffer diagnostics |
|
|
||||||
| `[d` | Previous diagnostic |
|
|
||||||
| `]d` | Next diagnostic |
|
|
||||||
| `<leader>ci` | Incoming calls |
|
|
||||||
| `<leader>co` | Outgoing calls |
|
|
||||||
| `<leader>so` | Toggle LSP outline |
|
|
||||||
|
|
||||||
### Inc-Rename (Live Preview)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>rn` | Rename with live preview |
|
|
||||||
|
|
||||||
### Outline
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>cs` | Toggle symbol outline |
|
|
||||||
|
|
||||||
### Formatting
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>f` | Format buffer |
|
|
||||||
| `<leader>mm` | Format with conform |
|
|
||||||
|
|
||||||
### Regexplainer
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>rx` | Toggle regex explanation |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Git
|
|
||||||
|
|
||||||
### LazyGit
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>gg` | Open LazyGit |
|
|
||||||
|
|
||||||
### Neogit
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>gn` | Open Neogit |
|
|
||||||
| `<leader>gnc` | Neogit commit |
|
|
||||||
| `<leader>gnp` | Neogit push |
|
|
||||||
| `<leader>gnl` | Neogit pull |
|
|
||||||
| `<leader>gnb` | Neogit branch |
|
|
||||||
|
|
||||||
### Diffview
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>gd` | Open diffview |
|
|
||||||
| `<leader>gD` | Close diffview |
|
|
||||||
| `<leader>gh` | File history (current file) |
|
|
||||||
| `<leader>gH` | File history (repo) |
|
|
||||||
|
|
||||||
### Git Blame
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>gB` | Toggle git blame |
|
|
||||||
| `<leader>gbc` | Copy commit SHA |
|
|
||||||
| `<leader>gbo` | Open commit URL |
|
|
||||||
| `<leader>gbf` | Open file URL |
|
|
||||||
|
|
||||||
### Octo (GitHub)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>oi` | List issues |
|
|
||||||
| `<leader>oI` | Create issue |
|
|
||||||
| `<leader>op` | List PRs |
|
|
||||||
| `<leader>oP` | Create PR |
|
|
||||||
| `<leader>or` | List repos |
|
|
||||||
| `<leader>os` | Search issues/PRs |
|
|
||||||
| `<leader>oa` | Octo actions |
|
|
||||||
|
|
||||||
### Gitsigns
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `]c` | Next hunk |
|
|
||||||
| `[c` | Previous hunk |
|
|
||||||
| `<leader>hs` | Stage hunk |
|
|
||||||
| `<leader>hr` | Reset hunk |
|
|
||||||
| `<leader>hp` | Preview hunk |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Debugging
|
|
||||||
|
|
||||||
### DAP (Debug Adapter Protocol)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>db` | Toggle breakpoint |
|
|
||||||
| `<leader>dcc` | Start/Continue debugging |
|
|
||||||
| `<leader>di` | Step into |
|
|
||||||
| `<leader>do` | Step over |
|
|
||||||
| `<leader>dO` | Step out |
|
|
||||||
| `<leader>dr` | Toggle REPL |
|
|
||||||
| `<leader>dl` | Run last debug config |
|
|
||||||
| `<leader>du` | Toggle DAP UI |
|
|
||||||
| `<leader>dt` | Float element |
|
|
||||||
| `<leader>dco` | DAP commands |
|
|
||||||
| `<leader>dcf` | List DAP configs |
|
|
||||||
| `<leader>dcb` | List breakpoints |
|
|
||||||
|
|
||||||
### Java Debugging
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>jd` | Debug class |
|
|
||||||
| `<leader>jt` | Test class |
|
|
||||||
| `<leader>jn` | Test nearest method |
|
|
||||||
| `<leader>jr` | Run Java file |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Search & Replace
|
|
||||||
|
|
||||||
### Grug-Far (Project-Wide)
|
|
||||||
| Key | Mode | Action |
|
|
||||||
|-----|------|--------|
|
|
||||||
| `<leader>sr` | n | Open search & replace |
|
|
||||||
| `<leader>sR` | n | Search current word |
|
|
||||||
| `<leader>sR` | v | Search selection |
|
|
||||||
|
|
||||||
Inside Grug-Far:
|
|
||||||
- `<localleader>r` - Replace
|
|
||||||
- `<localleader>R` - Replace all
|
|
||||||
- `<Enter>` - Go to location
|
|
||||||
- `q` - Close
|
|
||||||
|
|
||||||
### SSR (Structural Search/Replace)
|
|
||||||
| Key | Mode | Action |
|
|
||||||
|-----|------|--------|
|
|
||||||
| `<leader>sR` | n, x | Structural search/replace |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tasks & HTTP
|
|
||||||
|
|
||||||
### Overseer (Task Runner)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>or` | Run task |
|
|
||||||
| `<leader>ot` | Toggle task list |
|
|
||||||
| `<leader>oa` | Task action |
|
|
||||||
| `<leader>oq` | Quick action |
|
|
||||||
| `<leader>ob` | Build |
|
|
||||||
| `<leader>oc` | Run shell command |
|
|
||||||
|
|
||||||
### Kulala (HTTP Client)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>kr` | Run HTTP request |
|
|
||||||
| `<leader>ka` | Run all requests |
|
|
||||||
| `<leader>kp` | Previous request |
|
|
||||||
| `<leader>kn` | Next request |
|
|
||||||
| `<leader>ki` | Inspect request |
|
|
||||||
| `<leader>kt` | Toggle headers/body |
|
|
||||||
| `<leader>kc` | Copy as cURL |
|
|
||||||
| `<leader>ke` | Set environment |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## UI & Productivity
|
|
||||||
|
|
||||||
### Zen Mode & Focus
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>zz` | Toggle Zen mode |
|
|
||||||
| `<leader>zt` | Toggle Twilight (dim code) |
|
|
||||||
|
|
||||||
### Session
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>qs` | Restore session |
|
|
||||||
| `<leader>ql` | Restore last session |
|
|
||||||
| `<leader>qd` | Don't save session |
|
|
||||||
|
|
||||||
### Learning Vim
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>ht` | Toggle Hardtime |
|
|
||||||
| `<leader>vp` | Toggle Precognition hints |
|
|
||||||
| `<leader>vP` | Peek Precognition |
|
|
||||||
|
|
||||||
### Screenkey (Demo Mode)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>sk` | Toggle Screenkey |
|
|
||||||
|
|
||||||
### Trouble (Diagnostics)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>xx` | Toggle Trouble |
|
|
||||||
| `<leader>xw` | Workspace diagnostics |
|
|
||||||
| `<leader>xd` | Document diagnostics |
|
|
||||||
| `<leader>xl` | Location list |
|
|
||||||
| `<leader>xq` | Quickfix list |
|
|
||||||
| `<leader>xt` | Open TODOs in Trouble |
|
|
||||||
|
|
||||||
### Todo Comments
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `]t` | Next TODO |
|
|
||||||
| `[t` | Previous TODO |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Language Specific
|
|
||||||
|
|
||||||
### Python
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>vs` | Select Python venv |
|
|
||||||
| `<leader>vc` | Select cached venv |
|
|
||||||
|
|
||||||
### JavaScript/TypeScript (package.json)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>ns` | Show package versions |
|
|
||||||
| `<leader>nh` | Hide package info |
|
|
||||||
| `<leader>nu` | Update package |
|
|
||||||
| `<leader>nd` | Delete package |
|
|
||||||
| `<leader>ni` | Install package |
|
|
||||||
| `<leader>nc` | Change version |
|
|
||||||
|
|
||||||
### Rust (Cargo.toml)
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>ct` | Toggle crates |
|
|
||||||
| `<leader>cr` | Reload crates |
|
|
||||||
| `<leader>cv` | Show versions popup |
|
|
||||||
| `<leader>cf` | Show features popup |
|
|
||||||
| `<leader>cd` | Show dependencies |
|
|
||||||
| `<leader>cu` | Update crate |
|
|
||||||
| `<leader>cU` | Upgrade crate |
|
|
||||||
|
|
||||||
### LeetCode
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>lr` | Run code |
|
|
||||||
| `<leader>ls` | Submit code |
|
|
||||||
| `<leader>ld` | Daily challenge |
|
|
||||||
| `<leader>ll` | List problems |
|
|
||||||
| `<leader>lc` | Open console |
|
|
||||||
| `<leader>lh` | Show hints |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Window Management
|
|
||||||
|
|
||||||
### Splits
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>sv` | Split vertical |
|
|
||||||
| `<leader>sh` | Split horizontal |
|
|
||||||
| `<leader>se` | Equal splits |
|
|
||||||
| `<leader>sx` | Close split |
|
|
||||||
| `<leader>sm` | Maximize split |
|
|
||||||
|
|
||||||
### Navigation
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<C-h>` | Move to left window |
|
|
||||||
| `<C-j>` | Move to down window |
|
|
||||||
| `<C-k>` | Move to up window |
|
|
||||||
| `<C-l>` | Move to right window |
|
|
||||||
|
|
||||||
### Resize
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<C-Up>` | Increase height |
|
|
||||||
| `<C-Down>` | Decrease height |
|
|
||||||
| `<C-Left>` | Decrease width |
|
|
||||||
| `<C-Right>` | Increase width |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## General
|
|
||||||
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `jj` | Exit insert mode |
|
|
||||||
| `<leader>nh` | Clear search highlights |
|
|
||||||
| `<leader>w` | Save file |
|
|
||||||
| `<leader>q` | Close file |
|
|
||||||
| `<leader>Q` | Quit all |
|
|
||||||
| `<leader>xa` | Save and close all |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
| Command | Description |
|
|
||||||
|---------|-------------|
|
|
||||||
| `:Lazy` | Plugin manager |
|
|
||||||
| `:Mason` | LSP server manager |
|
|
||||||
| `:Navbuddy` | Code navigation |
|
|
||||||
| `:Outline` | Symbol outline |
|
|
||||||
| `:Neogit` | Git interface |
|
|
||||||
| `:DiffviewOpen` | Diff view |
|
|
||||||
| `:GrugFar` | Search & replace |
|
|
||||||
| `:Octo` | GitHub |
|
|
||||||
| `:OverseerRun` | Run tasks |
|
|
||||||
| `:ZenMode` | Zen mode |
|
|
||||||
| `:Hardtime toggle` | Toggle hardtime |
|
|
||||||
| `:Screenkey` | Show keypresses |
|
|
||||||
| `:TSJToggle` | Toggle split/join |
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
# Neovim Performance Analysis & Optimization Results
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
This document analyzes the performance profile from `nvim-profile.log` and shows the results of applied optimizations.
|
|
||||||
|
|
||||||
## 📊 Performance Comparison Results
|
|
||||||
|
|
||||||
### ✅ **Significant Improvements**
|
|
||||||
|
|
||||||
#### 1. Clipboard Provider Performance
|
|
||||||
- **Before**: 2.16s total time, 123 calls
|
|
||||||
- **After**: 0.54s total time, 78 calls
|
|
||||||
- **Improvement**: **75% reduction** in total time, **37% fewer** calls
|
|
||||||
- **Status**: ✅ **MAJOR SUCCESS**
|
|
||||||
|
|
||||||
#### 2. Syntax Loading Performance
|
|
||||||
- **Before**: 0.70s total time, 699 calls
|
|
||||||
- **After**: 0.47s total time, 189 calls
|
|
||||||
- **Improvement**: **33% reduction** in total time, **73% fewer** calls
|
|
||||||
- **Status**: ✅ **SUCCESS**
|
|
||||||
|
|
||||||
#### 3. Filetype Plugin Loading
|
|
||||||
- **Before**: 0.70s total time, 278 calls
|
|
||||||
- **After**: 0.62s total time, 175 calls
|
|
||||||
- **Improvement**: **11% reduction** in total time, **37% fewer** calls
|
|
||||||
- **Status**: ✅ **MODERATE SUCCESS**
|
|
||||||
|
|
||||||
### ⚠️ **Performance Regressions**
|
|
||||||
|
|
||||||
#### 4. WakaTime Plugin Performance
|
|
||||||
- **Before**: 0.48s total time, 686 calls
|
|
||||||
- **After**: 1.82s total time, 2,052 calls
|
|
||||||
- **Change**: **279% increase** in total time, **199% more** calls
|
|
||||||
- **Status**: ❌ **REGRESSION** - Need to investigate
|
|
||||||
|
|
||||||
#### 5. Matchparen Highlighting
|
|
||||||
- **Before**: 0.23s total time, 2,912 calls
|
|
||||||
- **After**: 0.78s total time, 6,055 calls
|
|
||||||
- **Change**: **239% increase** in total time, **108% more** calls
|
|
||||||
- **Status**: ❌ **REGRESSION** - Need to investigate
|
|
||||||
|
|
||||||
## 🔧 Applied Optimizations
|
|
||||||
|
|
||||||
### ✅ Successful Optimizations
|
|
||||||
|
|
||||||
#### 1. Keymap Conflict Resolution
|
|
||||||
- **Fixed**: Changed `<leader>s` to `<leader>sub` to avoid conflict with `<leader>fs`
|
|
||||||
- **File**: `lua/cargdev/core/keymaps/plugins.lua`
|
|
||||||
- **Impact**: `<leader>fs` now works correctly for file search
|
|
||||||
- **Status**: ✅ **CONFIRMED WORKING**
|
|
||||||
|
|
||||||
#### 2. Clipboard Provider Optimization
|
|
||||||
- **Fixed**: Added explicit macOS clipboard configuration
|
|
||||||
- **File**: `lua/cargdev/core/options.lua`
|
|
||||||
- **Changes**: Configured `pbcopy`/`pbpaste` with caching enabled
|
|
||||||
- **Result**: **75% performance improvement**
|
|
||||||
- **Status**: ✅ **MAJOR SUCCESS**
|
|
||||||
|
|
||||||
#### 3. Syntax Loading Optimization
|
|
||||||
- **Fixed**: Optimized syntax highlighting settings
|
|
||||||
- **File**: `lua/cargdev/core/options.lua`
|
|
||||||
- **Changes**: Reduced `synmaxcol` to 200, disabled modelines
|
|
||||||
- **Result**: **33% performance improvement**
|
|
||||||
- **Status**: ✅ **SUCCESS**
|
|
||||||
|
|
||||||
#### 4. Filetype Plugin Optimization
|
|
||||||
- **Fixed**: Optimized filetype plugin loading
|
|
||||||
- **File**: `lua/cargdev/core/options.lua`
|
|
||||||
- **Changes**: Disabled modelines for security and performance
|
|
||||||
- **Result**: **11% performance improvement**
|
|
||||||
- **Status**: ✅ **MODERATE SUCCESS**
|
|
||||||
|
|
||||||
### ❌ Failed Optimizations
|
|
||||||
|
|
||||||
#### 5. WakaTime Performance Optimization
|
|
||||||
- **Attempted**: Optimized heartbeat frequency and buffering
|
|
||||||
- **File**: `lua/cargdev/plugins/wakatime.lua`
|
|
||||||
- **Changes**: Increased heartbeat frequency to 2 minutes, enabled buffering
|
|
||||||
- **Result**: **279% performance regression**
|
|
||||||
- **Status**: ❌ **NEEDS REVERT**
|
|
||||||
|
|
||||||
#### 6. Matchparen Performance Optimization
|
|
||||||
- **Attempted**: Reduced timeout values for faster response
|
|
||||||
- **File**: `lua/cargdev/core/options.lua`
|
|
||||||
- **Changes**: Reduced `matchparen_timeout` to 100ms, `matchparen_insert_timeout` to 50ms
|
|
||||||
- **Result**: **239% performance regression**
|
|
||||||
- **Status**: ❌ **NEEDS REVERT**
|
|
||||||
|
|
||||||
## 🚨 Issues Requiring Immediate Attention
|
|
||||||
|
|
||||||
### 1. WakaTime Regression
|
|
||||||
**Problem**: WakaTime is now consuming significantly more resources
|
|
||||||
**Possible Causes**:
|
|
||||||
- Buffering enabled may be causing overhead
|
|
||||||
- Increased heartbeat frequency may be triggering more processing
|
|
||||||
- Debug mode changes may have unintended effects
|
|
||||||
|
|
||||||
**Recommended Actions**:
|
|
||||||
- Revert WakaTime configuration to original settings
|
|
||||||
- Consider disabling WakaTime temporarily to measure impact
|
|
||||||
- Investigate alternative WakaTime configurations
|
|
||||||
|
|
||||||
### 2. Matchparen Regression
|
|
||||||
**Problem**: Matchparen highlighting is now much slower
|
|
||||||
**Possible Causes**:
|
|
||||||
- Reduced timeout values may be causing more frequent recalculations
|
|
||||||
- Timeout settings may be conflicting with other optimizations
|
|
||||||
- The optimization may have triggered a different code path
|
|
||||||
|
|
||||||
**Recommended Actions**:
|
|
||||||
- Revert matchparen timeout settings to defaults
|
|
||||||
- Test with original settings to confirm improvement
|
|
||||||
- Consider alternative matchparen optimization strategies
|
|
||||||
|
|
||||||
## 📈 Overall Performance Impact
|
|
||||||
|
|
||||||
### Net Performance Change
|
|
||||||
- **Clipboard**: +1.62s improvement
|
|
||||||
- **Syntax**: +0.23s improvement
|
|
||||||
- **Filetype**: +0.08s improvement
|
|
||||||
- **WakaTime**: -1.34s regression
|
|
||||||
- **Matchparen**: -0.55s regression
|
|
||||||
|
|
||||||
**Net Result**: **+0.04s improvement** (essentially neutral)
|
|
||||||
|
|
||||||
### Recommendations
|
|
||||||
1. **Keep successful optimizations** (clipboard, syntax, filetype)
|
|
||||||
2. **Revert failed optimizations** (WakaTime, matchparen)
|
|
||||||
3. **Investigate alternative approaches** for WakaTime and matchparen
|
|
||||||
4. **Consider disabling WakaTime** if not actively used
|
|
||||||
|
|
||||||
## 🔍 **Additional Performance Issues Discovered**
|
|
||||||
|
|
||||||
### 6. CursorHold Events Performance
|
|
||||||
- **Total Time**: 0.92s (CursorHold_Cb) + 0.30s (CursorHoldI_Cb) = **1.22s total**
|
|
||||||
- **Calls**: 1,213 + 625 = **1,838 calls**
|
|
||||||
- **Issue**: FixCursorHold plugin is consuming significant resources
|
|
||||||
- **Status**: ⚠️ **NEW ISSUE** - Major performance bottleneck
|
|
||||||
|
|
||||||
### 7. Tmux Navigation Performance
|
|
||||||
- **Total Time**: 0.61s (TmuxAwareNavigate) + 0.56s (VimNavigate) = **1.17s total**
|
|
||||||
- **Calls**: 63 + 63 = **126 calls**
|
|
||||||
- **Issue**: Tmux-aware navigation is slow
|
|
||||||
- **Status**: ⚠️ **NEW ISSUE** - Significant overhead
|
|
||||||
|
|
||||||
### 8. Treesitter Indentation Performance
|
|
||||||
- **Total Time**: 0.08s
|
|
||||||
- **Calls**: 15 calls
|
|
||||||
- **Issue**: Treesitter indentation is being called frequently
|
|
||||||
- **Status**: ⚠️ **NEW ISSUE** - Moderate impact
|
|
||||||
|
|
||||||
### 9. WakaTime Heartbeat System
|
|
||||||
- **Total Time**: 0.98s (SetLastHeartbeat) + 0.11s (SendHeartbeats) = **1.09s total**
|
|
||||||
- **Calls**: 206 + 60 = **266 calls**
|
|
||||||
- **Issue**: Heartbeat system is very slow
|
|
||||||
- **Status**: ❌ **MAJOR ISSUE** - Part of WakaTime regression
|
|
||||||
|
|
||||||
## 📊 **Updated Performance Summary**
|
|
||||||
|
|
||||||
### Total Performance Impact (All Issues)
|
|
||||||
- **WakaTime System**: 2.91s total (HandleActivity + Heartbeats)
|
|
||||||
- **CursorHold Events**: 1.22s total
|
|
||||||
- **Tmux Navigation**: 1.17s total
|
|
||||||
- **Matchparen**: 0.78s total
|
|
||||||
- **Clipboard**: 0.54s total (improved from 2.16s)
|
|
||||||
- **Syntax Loading**: 0.47s total (improved from 0.70s)
|
|
||||||
- **Filetype Plugins**: 0.62s total (improved from 0.70s)
|
|
||||||
|
|
||||||
**Total Identified Issues**: **~7.7 seconds** of performance overhead
|
|
||||||
|
|
||||||
## 🚨 **Critical Issues Requiring Immediate Attention**
|
|
||||||
|
|
||||||
### 1. WakaTime Complete System Failure
|
|
||||||
- **Problem**: Entire WakaTime system is consuming 2.91s total
|
|
||||||
- **Components**: HandleActivity (1.82s) + Heartbeats (1.09s)
|
|
||||||
- **Impact**: Single biggest performance bottleneck
|
|
||||||
- **Action**: **DISABLE WAKATIME IMMEDIATELY**
|
|
||||||
|
|
||||||
### 2. CursorHold Events Overhead
|
|
||||||
- **Problem**: FixCursorHold plugin consuming 1.22s
|
|
||||||
- **Impact**: Major performance hit on cursor movement
|
|
||||||
- **Action**: **OPTIMIZE OR DISABLE FixCursorHold**
|
|
||||||
|
|
||||||
### 3. Tmux Navigation Overhead
|
|
||||||
- **Problem**: Tmux-aware navigation consuming 1.17s
|
|
||||||
- **Impact**: Significant overhead for navigation
|
|
||||||
- **Action**: **OPTIMIZE Tmux integration**
|
|
||||||
|
|
||||||
## 🎯 **Revised Priority Actions**
|
|
||||||
|
|
||||||
### Immediate (Critical)
|
|
||||||
1. **Disable WakaTime completely** - Save 2.91s
|
|
||||||
2. **Optimize FixCursorHold** - Save up to 1.22s
|
|
||||||
3. **Revert matchparen settings** - Save 0.55s
|
|
||||||
|
|
||||||
### High Priority
|
|
||||||
4. **Optimize Tmux navigation** - Save up to 1.17s
|
|
||||||
5. **Investigate Treesitter indentation** - Save up to 0.08s
|
|
||||||
|
|
||||||
### Medium Priority
|
|
||||||
6. **Keep successful optimizations** (clipboard, syntax, filetype)
|
|
||||||
|
|
||||||
**Potential Total Savings**: **~5.8 seconds** (75% improvement)
|
|
||||||
|
|
||||||
---
|
|
||||||
*Analysis based on comparison of original and optimized nvim-profile.log*
|
|
||||||
*Last updated: $(date)*
|
|
||||||
*Keymap conflict: ✅ Fixed | Clipboard: ✅ 75% improvement | Syntax: ✅ 33% improvement | Filetype: ✅ 11% improvement | WakaTime: ❌ 279% regression | Matchparen: ❌ 239% regression*
|
|
||||||
159
README.md
159
README.md
@@ -20,15 +20,17 @@ A modern, feature-rich Neovim configuration with 80+ plugins, optimized for full
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **VS Code-like UI** with file explorer on right, breadcrumbs, symbol outline
|
- **VS Code-like UI** with file explorer, breadcrumbs, symbol outline
|
||||||
- **80+ plugins** carefully configured and optimized
|
- **80+ plugins** carefully configured and optimized
|
||||||
- **Full LSP support** for TypeScript, Python, Java, Go, Lua, and more
|
- **Full LSP support** for TypeScript, Python, Java, Go, Lua, and more
|
||||||
- **Debugging** with DAP for Node.js/NestJS, Python, Java
|
- **Debugging** with DAP for Node.js/NestJS, Python, Java, Bun
|
||||||
- **Git integration** with LazyGit, Neogit, Diffview, Octo (GitHub PRs)
|
- **Git integration** with LazyGit, Neogit, Diffview, Octo (GitHub PRs)
|
||||||
- **AI assistance** with GitHub Copilot
|
- **AI assistance** with GitHub Copilot + CopilotChat
|
||||||
- **HTTP client** for API testing
|
- **HTTP client** for API testing
|
||||||
- **Task runner** for build/run tasks
|
- **Task runner** for build/run tasks
|
||||||
- **Multi-cursor** editing like VS Code
|
- **Multi-cursor** editing like VS Code
|
||||||
|
- **Snacks.nvim** for modern file navigation and pickers
|
||||||
|
- **fzf-lua** for LSP navigation
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -59,9 +61,12 @@ nvim
|
|||||||
|
|
||||||
| Document | Description |
|
| Document | Description |
|
||||||
|----------|-------------|
|
|----------|-------------|
|
||||||
| [KEYMAPS.md](./KEYMAPS.md) | **Complete keybinding reference** |
|
| [KEYMAPS.md](./docs/KEYMAPS.md) | **Complete keybinding reference** |
|
||||||
| [PLUGINS.md](./PLUGINS.md) | All plugins and their purposes |
|
| [PLUGINS.md](./docs/PLUGINS.md) | All plugins and their purposes |
|
||||||
| [CHANGELOG.md](./CHANGELOG.md) | Version history |
|
| [CHANGELOG.md](./CHANGELOG.md) | Version history and recent changes |
|
||||||
|
| [Native Auto Wrapper](./docs/NATIVE_AUTO_WRAPPER_GUIDE.md) | Text wrapping configuration |
|
||||||
|
| [Snacks Migration](./docs/TELESCOPE_TO_SNACKS_MIGRATION.md) | Telescope to Snacks migration notes |
|
||||||
|
| [Keyboard Mappings](./docs/keyboard_mappings.md) | QMK keyboard layout reference |
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
@@ -71,65 +76,48 @@ nvim
|
|||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|-----|--------|
|
|-----|--------|
|
||||||
| `<leader>ff` | Find files |
|
| `<leader>ff` | Find files (Snacks picker) |
|
||||||
| `<leader>fs` | Search text in project |
|
| `<leader>fs` | Search text in project |
|
||||||
| `<leader>e` | Toggle file explorer (right side) |
|
| `<leader>e` | Toggle file explorer |
|
||||||
| `<leader>gg` | Open LazyGit |
|
| `<leader>gg` | Open LazyGit |
|
||||||
| `s` | Flash jump (type chars to jump) |
|
| `K` | Peek fold or hover documentation |
|
||||||
| `<leader>ha` | Harpoon add file |
|
| `gd` | Go to definition (fzf-lua) |
|
||||||
| `<leader>1-5` | Jump to harpooned file |
|
| `<leader>ca` | Code actions (fzf-lua) |
|
||||||
| `K` | Hover documentation |
|
| `<leader>rn` | Rename symbol |
|
||||||
| `gd` | Go to definition |
|
|
||||||
| `<leader>ca` | Code actions |
|
|
||||||
| `<leader>rn` | Rename symbol (live preview) |
|
|
||||||
| `<C-d>` | Multi-cursor (select word) |
|
| `<C-d>` | Multi-cursor (select word) |
|
||||||
|
|
||||||
### Navigation
|
### Navigation
|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|-----|--------|
|
|-----|--------|
|
||||||
| `s` | Flash jump anywhere |
|
| `<leader>ff` | Find files (Snacks) |
|
||||||
| `S` | Flash treesitter select |
|
| `<leader>fs` | Live grep (Snacks) |
|
||||||
| `<leader>nb` | Navbuddy (code structure popup) |
|
| `<leader>fr` | Recent files (Snacks) |
|
||||||
| `<leader>cs` | Symbol outline sidebar |
|
| `<leader>fb` | Find buffers (Snacks) |
|
||||||
| `<leader>tu` | Undo tree |
|
| `<leader>fk` | Find keymaps (Snacks) |
|
||||||
|
|
||||||
### Git
|
### Git
|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|-----|--------|
|
|-----|--------|
|
||||||
| `<leader>gg` | LazyGit |
|
| `<leader>gg` | LazyGit |
|
||||||
| `<leader>gn` | Neogit (magit-like) |
|
| `<leader>gs` | Git status |
|
||||||
| `<leader>gd` | Diffview |
|
| `]h` / `[h` | Next/prev hunk |
|
||||||
| `<leader>gh` | File history |
|
| `<leader>hs` | Stage hunk |
|
||||||
| `<leader>gB` | Toggle git blame |
|
| `<leader>hb` | Blame line |
|
||||||
| `<leader>oi` | GitHub issues (Octo) |
|
| `<leader>hd` | Diff this |
|
||||||
| `<leader>op` | GitHub PRs (Octo) |
|
|
||||||
|
|
||||||
### Editing
|
|
||||||
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<C-d>` | Add cursor on word (VS Code style) |
|
|
||||||
| `<C-a>` / `<C-x>` | Smart increment/decrement |
|
|
||||||
| `<leader>tj` | Toggle split/join code blocks |
|
|
||||||
| `<leader>sr` | Search & replace (project-wide) |
|
|
||||||
| `<leader>sR` | Structural search/replace |
|
|
||||||
| `<leader>yh` | Yank history |
|
|
||||||
| `<C-p>` / `<C-n>` | Cycle yank history |
|
|
||||||
|
|
||||||
### LSP
|
### LSP
|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|-----|--------|
|
|-----|--------|
|
||||||
| `K` | Hover documentation |
|
| `H` | Hover documentation |
|
||||||
| `gd` | Peek definition |
|
| `gd` | Go to definition |
|
||||||
| `gD` | Go to definition |
|
| `gi` | Go to implementation |
|
||||||
| `gr` | Rename |
|
| `gr` | Show references |
|
||||||
| `gh` | LSP finder (refs, implementations) |
|
|
||||||
| `<leader>ca` | Code actions |
|
| `<leader>ca` | Code actions |
|
||||||
| `<leader>rn` | Rename (live preview) |
|
| `<leader>rn` | Rename |
|
||||||
| `<leader>sl` | Line diagnostics |
|
| `<leader>dd` | Line diagnostics |
|
||||||
| `[d` / `]d` | Prev/next diagnostic |
|
| `[d` / `]d` | Prev/next diagnostic |
|
||||||
|
|
||||||
### Debugging
|
### Debugging
|
||||||
@@ -137,11 +125,31 @@ nvim
|
|||||||
| Key | Action |
|
| Key | Action |
|
||||||
|-----|--------|
|
|-----|--------|
|
||||||
| `<leader>db` | Toggle breakpoint |
|
| `<leader>db` | Toggle breakpoint |
|
||||||
| `<leader>dcc` | Start/continue debugging |
|
| `<leader>dcr` | Start/continue debugging |
|
||||||
| `<leader>di` | Step into |
|
| `<leader>di` | Step into |
|
||||||
| `<leader>do` | Step over |
|
| `<leader>do` | Step over |
|
||||||
| `<leader>dO` | Step out |
|
| `<leader>dot` | Step out |
|
||||||
| `<leader>du` | Toggle DAP UI |
|
| `<leader>du` | Toggle DAP UI |
|
||||||
|
| `<leader>jd` | Dynamic debug attach |
|
||||||
|
|
||||||
|
### Copilot & AI
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
|-----|--------|
|
||||||
|
| `<leader>cc` | Toggle CopilotChat |
|
||||||
|
| `<leader>ce` | Explain code |
|
||||||
|
| `<leader>cr` | Review code |
|
||||||
|
| `<leader>cf` | Fix code |
|
||||||
|
| `<leader>ct` | Generate tests |
|
||||||
|
|
||||||
|
### Editing
|
||||||
|
|
||||||
|
| Key | Action |
|
||||||
|
|-----|--------|
|
||||||
|
| `<C-d>` | Add cursor on word (VS Code style) |
|
||||||
|
| `<leader>/` | Toggle comment |
|
||||||
|
| `<leader>sub` | Substitute with motion |
|
||||||
|
| `<leader>mm` | Format with conform |
|
||||||
|
|
||||||
### Tasks & HTTP
|
### Tasks & HTTP
|
||||||
|
|
||||||
@@ -152,45 +160,20 @@ nvim
|
|||||||
| `<leader>kr` | Run HTTP request (in .http file) |
|
| `<leader>kr` | Run HTTP request (in .http file) |
|
||||||
| `<leader>ka` | Run all HTTP requests |
|
| `<leader>ka` | Run all HTTP requests |
|
||||||
|
|
||||||
### Productivity
|
### Language-Specific
|
||||||
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>zz` | Zen mode |
|
|
||||||
| `<leader>zt` | Twilight (dim inactive code) |
|
|
||||||
| `<leader>qs` | Restore session |
|
|
||||||
| `<leader>ht` | Toggle Hardtime (learn vim motions) |
|
|
||||||
| `<leader>vp` | Toggle Precognition (motion hints) |
|
|
||||||
| `<leader>sk` | Toggle Screenkey (show keypresses) |
|
|
||||||
|
|
||||||
### Python
|
|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|-----|--------|
|
|-----|--------|
|
||||||
| `<leader>vs` | Select Python venv |
|
| `<leader>vs` | Select Python venv |
|
||||||
| Debug configs | Django, FastAPI, Flask, Launch file |
|
|
||||||
|
|
||||||
### JavaScript/TypeScript
|
|
||||||
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>ns` | Show package versions (package.json) |
|
| `<leader>ns` | Show package versions (package.json) |
|
||||||
| `<leader>nu` | Update package |
|
|
||||||
| Debug configs | NestJS, ts-node, Attach |
|
|
||||||
|
|
||||||
### Rust
|
|
||||||
|
|
||||||
| Key | Action |
|
|
||||||
|-----|--------|
|
|
||||||
| `<leader>cv` | Show crate versions (Cargo.toml) |
|
| `<leader>cv` | Show crate versions (Cargo.toml) |
|
||||||
| `<leader>cu` | Update crate |
|
|
||||||
|
|
||||||
## Plugin Categories
|
## Plugin Categories
|
||||||
|
|
||||||
### Navigation & Search
|
### Navigation & Search
|
||||||
- **telescope** - Fuzzy finder
|
- **snacks.nvim** - Modern file navigation, pickers, dashboard
|
||||||
- **flash.nvim** - Jump anywhere with minimal keystrokes
|
- **telescope** - Fuzzy finder (git features, TODOs)
|
||||||
- **harpoon** - Quick file marks
|
- **fzf-lua** - LSP navigation pickers
|
||||||
- **portal.nvim** - Jump through jumplist with preview
|
- **portal.nvim** - Jump through jumplist with preview
|
||||||
- **nvim-navbuddy** - Code structure navigation
|
- **nvim-navbuddy** - Code structure navigation
|
||||||
|
|
||||||
@@ -198,14 +181,14 @@ nvim
|
|||||||
- **lazygit** - Terminal UI for git
|
- **lazygit** - Terminal UI for git
|
||||||
- **neogit** - Magit-like git interface
|
- **neogit** - Magit-like git interface
|
||||||
- **diffview** - Side-by-side diffs
|
- **diffview** - Side-by-side diffs
|
||||||
- **gitsigns** - Git decorations
|
- **gitsigns** - Git decorations and hunk actions
|
||||||
- **git-blame** - Inline blame
|
- **git-blame** - Inline blame
|
||||||
- **octo.nvim** - GitHub issues/PRs
|
- **octo.nvim** - GitHub issues/PRs
|
||||||
|
|
||||||
### LSP & Coding
|
### LSP & Coding
|
||||||
- **nvim-lspconfig** + **mason** - LSP setup
|
- **nvim-lspconfig** + **mason** - LSP setup
|
||||||
- **lspsaga** - Pretty LSP UI
|
- **lspsaga** - Pretty LSP UI
|
||||||
- **nvim-cmp** - Completion
|
- **nvim-cmp** - Completion (with Copilot source)
|
||||||
- **treesitter** - Syntax highlighting
|
- **treesitter** - Syntax highlighting
|
||||||
- **outline.nvim** - Symbol sidebar
|
- **outline.nvim** - Symbol sidebar
|
||||||
- **inc-rename** - Live rename preview
|
- **inc-rename** - Live rename preview
|
||||||
@@ -215,7 +198,6 @@ nvim
|
|||||||
- **vim-visual-multi** - Multi-cursor
|
- **vim-visual-multi** - Multi-cursor
|
||||||
- **yanky.nvim** - Yank ring
|
- **yanky.nvim** - Yank ring
|
||||||
- **treesj** - Split/join blocks
|
- **treesj** - Split/join blocks
|
||||||
- **dial.nvim** - Smart increment
|
|
||||||
- **nvim-surround** - Surround text
|
- **nvim-surround** - Surround text
|
||||||
- **nvim-autopairs** - Auto brackets
|
- **nvim-autopairs** - Auto brackets
|
||||||
- **Comment.nvim** - Commenting
|
- **Comment.nvim** - Commenting
|
||||||
@@ -223,7 +205,7 @@ nvim
|
|||||||
### UI
|
### UI
|
||||||
- **snacks.nvim** - Dashboard, notifier, picker
|
- **snacks.nvim** - Dashboard, notifier, picker
|
||||||
- **noice.nvim** - UI for messages, cmdline
|
- **noice.nvim** - UI for messages, cmdline
|
||||||
- **lualine** - Statusline
|
- **lualine** - Statusline (with word count)
|
||||||
- **bufferline** - Buffer tabs
|
- **bufferline** - Buffer tabs
|
||||||
- **dropbar** - Breadcrumbs
|
- **dropbar** - Breadcrumbs
|
||||||
- **satellite** - Scrollbar with markers
|
- **satellite** - Scrollbar with markers
|
||||||
@@ -240,13 +222,11 @@ nvim
|
|||||||
- **overseer** - Task runner
|
- **overseer** - Task runner
|
||||||
- **kulala** - HTTP client
|
- **kulala** - HTTP client
|
||||||
- **zen-mode** - Distraction-free
|
- **zen-mode** - Distraction-free
|
||||||
- **persistence** - Session management
|
|
||||||
- **grug-far** - Search & replace
|
- **grug-far** - Search & replace
|
||||||
- **ssr.nvim** - Structural search/replace
|
- **ssr.nvim** - Structural search/replace
|
||||||
|
|
||||||
### Eye Candy
|
### Eye Candy
|
||||||
- **cargdev-cyberpunk** - Custom theme
|
- **cargdev-cyberpunk** - Custom theme
|
||||||
- **mini.animate** - Smooth animations
|
|
||||||
- **reactive** - Mode-based colors
|
- **reactive** - Mode-based colors
|
||||||
- **hlchunk** - Scope highlighting
|
- **hlchunk** - Scope highlighting
|
||||||
- **nvim-highlight-colors** - Color preview
|
- **nvim-highlight-colors** - Color preview
|
||||||
@@ -266,7 +246,8 @@ nvim
|
|||||||
| `:OverseerRun` | Run tasks |
|
| `:OverseerRun` | Run tasks |
|
||||||
| `:ZenMode` | Distraction-free mode |
|
| `:ZenMode` | Distraction-free mode |
|
||||||
| `:Hardtime toggle` | Toggle vim training |
|
| `:Hardtime toggle` | Toggle vim training |
|
||||||
| `:Screenkey` | Show keypresses |
|
| `:WordCount` | Show word count (excluding symbols) |
|
||||||
|
| `:RunProject` | Run project command |
|
||||||
|
|
||||||
## Debugging Setup
|
## Debugging Setup
|
||||||
|
|
||||||
@@ -276,17 +257,17 @@ nvim
|
|||||||
```
|
```
|
||||||
Configs: Launch File, Django, FastAPI, Flask, Attach Remote
|
Configs: Launch File, Django, FastAPI, Flask, Attach Remote
|
||||||
|
|
||||||
### Node.js / TypeScript / NestJS
|
### Node.js / TypeScript / NestJS / Bun
|
||||||
```bash
|
```bash
|
||||||
:Mason # Install js-debug-adapter
|
:Mason # Install js-debug-adapter
|
||||||
```
|
```
|
||||||
Configs: Launch NestJS, Launch File, ts-node, Attach
|
Configs: Launch NestJS, Launch File, ts-node, Bun Launch, Dynamic Attach
|
||||||
|
|
||||||
### Java
|
### Java
|
||||||
```bash
|
```bash
|
||||||
:Mason # Install java-debug-adapter, java-test
|
:Mason # Install java-debug-adapter, java-test
|
||||||
```
|
```
|
||||||
Auto-configured via nvim-jdtls
|
Auto-configured via nvim-jdtls (JDK 25, mac_arm)
|
||||||
|
|
||||||
## HTTP Client (Kulala)
|
## HTTP Client (Kulala)
|
||||||
|
|
||||||
@@ -313,15 +294,9 @@ Use `<leader>kr` to run request under cursor.
|
|||||||
### Learn Vim Motions
|
### Learn Vim Motions
|
||||||
Enable Hardtime (`<leader>ht`) and Precognition (`<leader>vp`) to improve your vim skills.
|
Enable Hardtime (`<leader>ht`) and Precognition (`<leader>vp`) to improve your vim skills.
|
||||||
|
|
||||||
### Quick File Switching
|
|
||||||
Use Harpoon to mark important files (`<leader>ha`), then jump instantly with `<leader>1-5`.
|
|
||||||
|
|
||||||
### Multi-Cursor Editing
|
### Multi-Cursor Editing
|
||||||
Like VS Code: `<C-d>` to select word, keep pressing for more occurrences.
|
Like VS Code: `<C-d>` to select word, keep pressing for more occurrences.
|
||||||
|
|
||||||
### Smart Increment
|
|
||||||
`<C-a>` on `true` → `false`, on `GET` → `POST`, on dates, colors, etc.
|
|
||||||
|
|
||||||
### Split/Join Code
|
### Split/Join Code
|
||||||
`<leader>tj` on arrays, objects, function arguments to toggle between single/multi-line.
|
`<leader>tj` on arrays, objects, function arguments to toggle between single/multi-line.
|
||||||
|
|
||||||
|
|||||||
246
docs/CHANGELOG_OLD.md
Normal file
246
docs/CHANGELOG_OLD.md
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this Neovim configuration will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Python Debugger (debugpy)**: Full Python debugging support with multiple configurations
|
||||||
|
- Launch File - Debug current Python file
|
||||||
|
- Launch with Arguments - Debug with custom arguments
|
||||||
|
- Attach Remote - Attach to debugpy server (port 5678)
|
||||||
|
- Django - Debug Django with `manage.py runserver`
|
||||||
|
- FastAPI - Debug FastAPI with uvicorn
|
||||||
|
- Flask - Debug Flask application
|
||||||
|
- **Node.js/NestJS Debug Configurations**: Extended TypeScript/JavaScript debugging
|
||||||
|
- Launch NestJS (`dist/main.js`) with source maps
|
||||||
|
- Launch Current File
|
||||||
|
- Launch with ts-node (debug TypeScript directly)
|
||||||
|
- Attach to NestJS (port 9229)
|
||||||
|
- Attach to Process (pick from running processes)
|
||||||
|
- **Mason Debug Adapters**: Added `debugpy` and `js-debug-adapter` to auto-install list
|
||||||
|
- **README Documentation**: Added comprehensive "Debugging Setup" section with all configurations
|
||||||
|
- **Avante.nvim AI Assistant**: Added Avante.nvim with local LLM support to README documentation
|
||||||
|
- **Bash Treesitter Parser**: Installed bash parser for noice.nvim cmdline highlighting
|
||||||
|
- **Local Configuration Support**: `local.lua` is now loaded at startup and exposed via `vim.g.cargdev_local`
|
||||||
|
- Enables machine-specific paths without hardcoding
|
||||||
|
- Safe loading with `pcall` (won't error if file doesn't exist)
|
||||||
|
- Plugins gracefully skip if required config is missing
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Avante Plugin**: Now uses `local.lua` for all paths and settings
|
||||||
|
- `avante_dev_path` for plugin directory
|
||||||
|
- `avante_endpoint`, `avante_api_key_name`, `avante_model` for provider config
|
||||||
|
- **IdeaDrop Plugin**: Now uses `IDEA_DIR` from `local.lua` instead of environment variable
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- **Hardcoded Paths**: Removed all hardcoded user paths from plugin configs
|
||||||
|
- `avante.lua` - uses `local.lua` values
|
||||||
|
- `ideaMap.lua` - uses `local.lua` values
|
||||||
|
- `leetcode.lua` - removed commented hardcoded path
|
||||||
|
- `lazygit.lua` - removed commented hardcoded path
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Java Debug Adapter Paths**: Fixed incorrect paths in `ftplugin/java.lua`
|
||||||
|
- Changed `java-debug` → `java-debug-adapter/extension/server/`
|
||||||
|
- Changed `vscode-java-test` → `java-test/extension/server/`
|
||||||
|
- **Node.js DAP Adapter**: Fixed js-debug-adapter configuration in `dap.lua`
|
||||||
|
- Changed adapter type from `executable` to `server` (required by js-debug-adapter)
|
||||||
|
- Renamed adapter from `node` to `pwa-node` (standard DAP name)
|
||||||
|
- Added proper source map resolution and skipFiles patterns
|
||||||
|
- **Auto-session Lazy Loading**: Changed from `event = "VeryLazy"` to `lazy = false` to enable session auto-restore on startup
|
||||||
|
- **Alpha Dashboard Config**: Fixed `enable` to `enabled` (correct lazy.nvim spec key)
|
||||||
|
- **Snacks vs Alpha Conflict**: Disabled `Snacks.dashboard` in favor of `alpha-nvim` for CARGDEV branding
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Java Debug & Run Keymaps**: New keybindings for Java development
|
||||||
|
- `<leader>jd` - Debug Class (DAP)
|
||||||
|
- `<leader>jt` - Test Class
|
||||||
|
- `<leader>jn` - Test Nearest Method
|
||||||
|
- `<leader>jr` - Run Java File
|
||||||
|
- `<leader>jm` - Run Maven Project
|
||||||
|
- `<leader>jg` - Run Gradle Project
|
||||||
|
- **Java Debug Dependencies**: Added `java-debug-adapter` and `java-test` to Mason ensure_installed
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Colorscheme Configuration**: Enhanced `cargdev-cyberpunk` setup
|
||||||
|
- Enabled transparency
|
||||||
|
- Enabled italic comments
|
||||||
|
- Enabled bold keywords, functions, and types
|
||||||
|
- Enabled terminal colors
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Java DAP Configuration**: Fixed debug adapter not loading
|
||||||
|
- Changed `bundles = {}` to `bundles = bundles` to properly load debug JARs
|
||||||
|
- Added `on_attach` callback to setup DAP after JDTLS attaches
|
||||||
|
- Enables hot code replacement during debugging
|
||||||
|
- **Broken Java DAP Adapter**: Removed manual Java adapter with undefined `port` variable
|
||||||
|
- Now handled automatically by nvim-jdtls via `jdtls.setup_dap()`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [2026-01-10]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Custom Colorscheme**: Using `cargdev-cyberpunk` theme
|
||||||
|
- Vibrant, high-contrast cyberpunk aesthetic with neon colors
|
||||||
|
- Hot pink keywords, electric purple types, cyan strings, green functions
|
||||||
|
- Full TypeScript/LSP/Treesitter support
|
||||||
|
- Deep blue backgrounds with neon accents
|
||||||
|
- Loaded with high priority for consistent UI
|
||||||
|
- **Which-Key Group Names**: Added organized group names for better keymap discoverability
|
||||||
|
- Groups: Buffer, Code/Copilot, Debug, Explorer, Find/Files, Git, LSP, Format, Quickfix, Session, Tab/Terminal, Trouble, Copilot Chat
|
||||||
|
- **Auto-Format on Save**: Enabled smart auto-formatting with conform.nvim
|
||||||
|
- Skips certain filetypes (sql, markdown)
|
||||||
|
- Skips files in node_modules
|
||||||
|
- Added `:FormatToggle` command to enable/disable
|
||||||
|
- **Diagnostic Float on Hover**: Diagnostics now appear automatically when cursor holds
|
||||||
|
- **Safe Buffer Close**: `<leader>bd` now prompts for unsaved changes
|
||||||
|
- Options: Save & Close, Discard & Close, Cancel
|
||||||
|
- `<leader>bD` for force close without confirmation
|
||||||
|
- **Quickfix Navigation Keymaps**:
|
||||||
|
- `<leader>qn` - Next quickfix item
|
||||||
|
- `<leader>qp` - Previous quickfix item
|
||||||
|
- `<leader>qo` - Open quickfix list
|
||||||
|
- `<leader>qq` - Close quickfix list
|
||||||
|
- `<leader>qf` - First quickfix item
|
||||||
|
- `<leader>ql` - Last quickfix item
|
||||||
|
- **Location List Navigation Keymaps**:
|
||||||
|
- `<leader>ln` - Next location item
|
||||||
|
- `<leader>lp` - Previous location item
|
||||||
|
- `<leader>lo` - Open location list
|
||||||
|
- `<leader>lq` - Close location list
|
||||||
|
- **Configuration Validation**: Startup checks for:
|
||||||
|
- Neovim version (0.9+ recommended)
|
||||||
|
- Required executables (git, rg, node)
|
||||||
|
- **Plugin Update Notifications**: Lazy.nvim now notifies about available updates (daily check)
|
||||||
|
- **CheckConfig Command**: Quick access to health checks
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **Session Keymaps**: Renamed to avoid conflicts with substitute
|
||||||
|
- `<leader>ss` → `<leader>sS` (Session Save)
|
||||||
|
- `<leader>sr` → `<leader>sR` (Session Restore)
|
||||||
|
- **Substitute Keymaps**: Reorganized to avoid conflicts
|
||||||
|
- `<leader>ss` → `<leader>sl` (Substitute Line)
|
||||||
|
- `<leader>sub` remains for substitute with motion
|
||||||
|
- `<leader>S` remains for substitute to end of line
|
||||||
|
- **Keymap Descriptions**: Standardized format (e.g., "Session: Save", "Substitute: Line")
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Duplicate Window Management Keymaps**: Removed duplicates from `personal.lua`, centralized in `window.lua`
|
||||||
|
- **Duplicate Resize Keymaps**: Removed duplicates, centralized in `window.lua`
|
||||||
|
- **Redundant Filetype Detection**: Now only runs if filetype is not already detected
|
||||||
|
- **Double Function Loading**: Functions now load once on VimEnter with flag protection
|
||||||
|
- **Duplicate synmaxcol Setting**: Removed duplicate (was 240 then 200), kept 200
|
||||||
|
- **Duplicate foldmethod Setting**: Removed duplicate, kept `indent` (faster than `syntax`)
|
||||||
|
- **Duplicate foldlevel Setting**: Removed duplicate setting
|
||||||
|
- **Environment Variable Validation**: `IDEA_DIR` now validated before Obsidian link setup
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- **Temporary Files**:
|
||||||
|
- `kkk` - Unknown purpose temporary file
|
||||||
|
- `cleanup_deprecated_adapters.lua` - Cleanup script no longer needed
|
||||||
|
- **IMPROVEMENTS.md**: All issues resolved, file removed
|
||||||
|
- **Commented Code**:
|
||||||
|
- Tmux navigation keymaps from `personal.lua`
|
||||||
|
- Commented `x` keymap explanation from `general.lua`
|
||||||
|
- Commented `project_config` bootstrap from `init.lua`
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
- Optimized filetype detection (conditional execution)
|
||||||
|
- Reduced redundant option settings
|
||||||
|
- Single function loading instead of double
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [Previous] - Pre-Changelog
|
||||||
|
|
||||||
|
### Features Present
|
||||||
|
- Lazy.nvim plugin management
|
||||||
|
- Full LSP support with Mason
|
||||||
|
- nvim-cmp completion
|
||||||
|
- Snacks.nvim + Telescope file navigation
|
||||||
|
- nvim-tree file explorer
|
||||||
|
- LazyGit integration
|
||||||
|
- GitHub Copilot + Copilot Chat
|
||||||
|
- DAP debugging with UI
|
||||||
|
- Conform.nvim formatting
|
||||||
|
- Trouble.nvim diagnostics
|
||||||
|
- Native auto-wrapping configuration
|
||||||
|
- Custom lualine theme with word count
|
||||||
|
|
||||||
|
### Migration History
|
||||||
|
- Migrated from Telescope to Snacks for primary navigation
|
||||||
|
- Kept Telescope for git-specific features
|
||||||
|
- See [TELESCOPE_TO_SNACKS_MIGRATION.md](./TELESCOPE_TO_SNACKS_MIGRATION.md) for details
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Changes Summary
|
||||||
|
|
||||||
|
### Modified Files
|
||||||
|
| File | Changes |
|
||||||
|
|------|---------|
|
||||||
|
| `lua/cargdev/plugins/dap.lua` | Fixed Node.js adapter, added Python debugpy config |
|
||||||
|
| `ftplugin/java.lua` | Fixed java-debug-adapter and java-test paths |
|
||||||
|
| `lua/cargdev/plugins/lsp/mason.lua` | Added debugpy and js-debug-adapter to ensure_installed |
|
||||||
|
| `README.md` | Added Debugging Setup section with keymaps and configurations |
|
||||||
|
| `lua/cargdev/core/keymaps/README.md` | Added dap.lua and other keymap files to structure |
|
||||||
|
| `lua/cargdev/core/keymaps/personal.lua` | Removed duplicates, added quickfix/location keymaps, safe buffer close |
|
||||||
|
| `lua/cargdev/core/keymaps/plugins.lua` | Fixed session/substitute keymap conflicts |
|
||||||
|
| `lua/cargdev/core/keymaps/general.lua` | Added vault_path validation, removed commented code |
|
||||||
|
| `lua/cargdev/core/keymaps/window.lua` | Centralized window management keymaps |
|
||||||
|
| `lua/cargdev/core/init.lua` | Fixed double loading, added diagnostic hover, config validation, loads `local.lua` |
|
||||||
|
| `lua/cargdev/plugins/avante.lua` | Uses `local.lua` for paths and settings, removed hardcoded values |
|
||||||
|
| `lua/cargdev/plugins/ideaMap.lua` | Uses `local.lua` for `IDEA_DIR`, removed env var fallback |
|
||||||
|
| `lua/cargdev/plugins/leetcode.lua` | Removed commented hardcoded path |
|
||||||
|
| `lua/cargdev/plugins/lazygit.lua` | Removed commented hardcoded path |
|
||||||
|
| `lua/cargdev/core/options.lua` | Removed duplicate settings (synmaxcol, foldmethod, foldlevel) |
|
||||||
|
| `lua/cargdev/plugins/which-key.lua` | Added group names configuration |
|
||||||
|
| `lua/cargdev/plugins/formatting.lua` | Enabled auto-format on save with smart filtering |
|
||||||
|
| `lua/cargdev/lazy.lua` | Enabled plugin update notifications |
|
||||||
|
| `README.md` | Complete rewrite with proper documentation |
|
||||||
|
|
||||||
|
### Deleted Files
|
||||||
|
| File | Reason |
|
||||||
|
|------|--------|
|
||||||
|
| `kkk` | Temporary file, unknown purpose |
|
||||||
|
| `cleanup_deprecated_adapters.lua` | One-time cleanup script, no longer needed |
|
||||||
|
| `IMPROVEMENTS.md` | All issues resolved |
|
||||||
|
|
||||||
|
### New Files
|
||||||
|
| File | Purpose |
|
||||||
|
|------|---------|
|
||||||
|
| `CHANGELOG.md` | Track configuration changes |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Keymap Reference
|
||||||
|
|
||||||
|
### New/Changed Keymaps
|
||||||
|
|
||||||
|
| Keymap | Action | File |
|
||||||
|
|--------|--------|------|
|
||||||
|
| `<leader>sS` | Session: Save | plugins.lua |
|
||||||
|
| `<leader>sR` | Session: Restore | plugins.lua |
|
||||||
|
| `<leader>sl` | Substitute: Line | plugins.lua |
|
||||||
|
| `<leader>bd` | Buffer: Close (safe) | personal.lua |
|
||||||
|
| `<leader>bD` | Buffer: Force close | personal.lua |
|
||||||
|
| `<leader>qn` | Quickfix: Next | personal.lua |
|
||||||
|
| `<leader>qp` | Quickfix: Previous | personal.lua |
|
||||||
|
| `<leader>qo` | Quickfix: Open | personal.lua |
|
||||||
|
| `<leader>qq` | Quickfix: Close | personal.lua |
|
||||||
|
| `<leader>qf` | Quickfix: First | personal.lua |
|
||||||
|
| `<leader>ql` | Quickfix: Last | personal.lua |
|
||||||
|
| `<leader>ln` | Location: Next | personal.lua |
|
||||||
|
| `<leader>lp` | Location: Previous | personal.lua |
|
||||||
|
| `<leader>lo` | Location: Open | personal.lua |
|
||||||
|
| `<leader>lq` | Location: Close | personal.lua |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Last Updated: January 13, 2026*
|
||||||
546
docs/KEYMAPS.md
Normal file
546
docs/KEYMAPS.md
Normal file
@@ -0,0 +1,546 @@
|
|||||||
|
# Complete Keymaps Reference
|
||||||
|
|
||||||
|
**Leader Key: `<Space>`**
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
- [General](#general)
|
||||||
|
- [Personal Workflow](#personal-workflow)
|
||||||
|
- [Navigation (Snacks Picker)](#navigation-snacks-picker)
|
||||||
|
- [LSP & Code Intelligence](#lsp--code-intelligence)
|
||||||
|
- [File Management](#file-management)
|
||||||
|
- [Editing](#editing)
|
||||||
|
- [Git](#git)
|
||||||
|
- [Debugging (DAP)](#debugging-dap)
|
||||||
|
- [Copilot & AI](#copilot--ai)
|
||||||
|
- [Terminal](#terminal)
|
||||||
|
- [Window Management](#window-management)
|
||||||
|
- [Database](#database)
|
||||||
|
- [LeetCode](#leetcode)
|
||||||
|
- [Text Wrapping](#text-wrapping)
|
||||||
|
- [Folding (nvim-ufo)](#folding-nvim-ufo)
|
||||||
|
- [Session Management](#session-management)
|
||||||
|
- [Commands](#commands)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## General
|
||||||
|
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `jj` | i | Exit insert mode |
|
||||||
|
| `<leader>nh` | n | Clear search highlights |
|
||||||
|
| `<leader>Q` | n | Quit all |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Personal Workflow
|
||||||
|
|
||||||
|
### File Management
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>w` | n | Save file |
|
||||||
|
| `<leader>q` | n | Quit |
|
||||||
|
| `<leader>xa` | n | Save and close all |
|
||||||
|
| `<leader>so` | n | Reload nvim (source %) |
|
||||||
|
| `<leader>no` | n | Clear search highlight |
|
||||||
|
|
||||||
|
### Editing Shortcuts
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>u` | n | Select entire file |
|
||||||
|
| `<leader>4` | n | Duplicate line below |
|
||||||
|
| `<leader>+` | n | Increment number |
|
||||||
|
| `<leader>-` | n | Decrement number |
|
||||||
|
| `<leader>sy` | n | Re-indent entire file |
|
||||||
|
| `<C-e>` | n | Fast scroll down (10 lines) |
|
||||||
|
| `<C-y>` | n | Fast scroll up (10 lines) |
|
||||||
|
|
||||||
|
### Buffer Management
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>bd` | n | Close buffer (safe, prompts if modified) |
|
||||||
|
| `<leader>bD` | n | Force close buffer |
|
||||||
|
| `<C-p>` | n | Next buffer |
|
||||||
|
| `<C-n>` | n | Previous buffer |
|
||||||
|
|
||||||
|
### Coding Shortcuts
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>re` | n | Insert React import at top |
|
||||||
|
| `<leader>,` | n | Add comma at end of line |
|
||||||
|
| `<leader>;` | n | Add semicolon at end of line |
|
||||||
|
| `<leader>xr` | n | Run file with Node.js |
|
||||||
|
|
||||||
|
### Quickfix Navigation
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>xn` | n | Next quickfix item |
|
||||||
|
| `<leader>xp` | n | Previous quickfix item |
|
||||||
|
| `<leader>xo` | n | Open quickfix list |
|
||||||
|
| `<leader>xq` | n | Close quickfix list |
|
||||||
|
| `<leader>xf` | n | First quickfix item |
|
||||||
|
| `<leader>xl` | n | Last quickfix item |
|
||||||
|
|
||||||
|
### Location List Navigation
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>ln` | n | Next location item |
|
||||||
|
| `<leader>lp` | n | Previous location item |
|
||||||
|
| `<leader>lo` | n | Open location list |
|
||||||
|
| `<leader>lq` | n | Close location list |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Navigation (Snacks Picker)
|
||||||
|
|
||||||
|
### File Navigation
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>ff` | n | Find files |
|
||||||
|
| `<leader>fs` | n | Live grep |
|
||||||
|
| `<leader>fc` | n | Grep string under cursor |
|
||||||
|
| `<leader>fr` | n | Recent files |
|
||||||
|
|
||||||
|
### Buffer & Utility Search
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>fb` | n | Find buffers |
|
||||||
|
| `<leader>fh` | n | Help tags |
|
||||||
|
| `<leader>fm` | n | Find marks |
|
||||||
|
| `<leader>fk` | n | Find keymaps |
|
||||||
|
| `<leader>fC` | n | Find commands |
|
||||||
|
|
||||||
|
### Git (Telescope Fallback)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>fG` | n | Git commits |
|
||||||
|
| `<leader>fB` | n | Git buffer commits |
|
||||||
|
| `<leader>fg` | n | Git branches |
|
||||||
|
| `<leader>gs` | n | Git status |
|
||||||
|
|
||||||
|
### TODO Search
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>ft` | n | Find TODOs (Telescope) |
|
||||||
|
|
||||||
|
### Telescope (Unfiltered)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>fF` | n | Find files (all, unfiltered) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## LSP & Code Intelligence
|
||||||
|
|
||||||
|
### Navigation (fzf-lua)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `gd` | n | Go to definition |
|
||||||
|
| `gi` | n | Go to implementation |
|
||||||
|
| `gr` | n | Show references |
|
||||||
|
| `gt` | n | Go to type definition |
|
||||||
|
|
||||||
|
### Symbols
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>ds` | n | Document symbols |
|
||||||
|
| `<leader>lw` | n | Workspace symbols |
|
||||||
|
|
||||||
|
### Code Actions & Rename
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>ca` | n | Code actions |
|
||||||
|
| `<leader>rn` | n | Rename symbol |
|
||||||
|
| `H` | n | Hover documentation |
|
||||||
|
|
||||||
|
### Diagnostics
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>D` | n | Workspace diagnostics |
|
||||||
|
| `<leader>dd` | n | Line diagnostics (float) |
|
||||||
|
| `[d` | n | Previous diagnostic |
|
||||||
|
| `]d` | n | Next diagnostic |
|
||||||
|
|
||||||
|
### Formatting
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>mm` | n, v | Format with conform |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Management
|
||||||
|
|
||||||
|
### File Explorer (nvim-tree)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>e` | n | Toggle file explorer |
|
||||||
|
|
||||||
|
Inside nvim-tree:
|
||||||
|
| Key | Action |
|
||||||
|
|-----|--------|
|
||||||
|
| `o` | Open file |
|
||||||
|
| `s` | Open in vertical split |
|
||||||
|
| `i` | Open in horizontal split |
|
||||||
|
| `a` | Create new file |
|
||||||
|
| `r` | Rename |
|
||||||
|
| `d` | Delete |
|
||||||
|
| `x` | Cut |
|
||||||
|
| `y` | Copy |
|
||||||
|
| `p` | Paste |
|
||||||
|
| `u` | Go up one directory |
|
||||||
|
| `<leader>f` | Change root to node |
|
||||||
|
|
||||||
|
### Buffer Cycling
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<S-l>` | n | Next buffer |
|
||||||
|
| `<S-h>` | n | Previous buffer |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Editing
|
||||||
|
|
||||||
|
### Comments (Comment.nvim)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>/` | n, v | Toggle comment |
|
||||||
|
| `gcc` | n | Toggle line comment |
|
||||||
|
| `gc` | n | Toggle comment |
|
||||||
|
| `gco` | n | Insert comment below |
|
||||||
|
| `gcO` | n | Insert comment above |
|
||||||
|
| `gcA` | n | Insert comment at end of line |
|
||||||
|
| `gb` | n | Toggle block comment |
|
||||||
|
| `gbc` | n | Toggle block comment |
|
||||||
|
|
||||||
|
### Substitute (substitute.nvim)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>sub` | n | Substitute with motion |
|
||||||
|
| `<leader>sl` | n | Substitute line |
|
||||||
|
| `<leader>S` | n | Substitute to end of line |
|
||||||
|
|
||||||
|
### Surround (nvim-surround)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>sa` | n | Add surrounding |
|
||||||
|
| `<leader>sd` | n | Delete surrounding |
|
||||||
|
| `<leader>sr` | n | Replace surrounding |
|
||||||
|
| `ys` | n | Add surrounding (classic) |
|
||||||
|
| `yss` | n | Add surrounding to line |
|
||||||
|
| `yS` | n | Add surrounding on new lines |
|
||||||
|
| `ySS` | n | Add surrounding to line on new lines |
|
||||||
|
|
||||||
|
### Console.log
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>cl` | n | Insert console.log snippet |
|
||||||
|
|
||||||
|
### TODO Comments
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>xt` | n | Open TODOs in Trouble |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Git
|
||||||
|
|
||||||
|
### LazyGit
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>gg` | n | Open LazyGit |
|
||||||
|
|
||||||
|
### Gitsigns (buffer-local)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `]h` | n | Next hunk |
|
||||||
|
| `[h` | n | Previous hunk |
|
||||||
|
| `<leader>hs` | n, v | Stage hunk |
|
||||||
|
| `<leader>hr` | n, v | Reset hunk |
|
||||||
|
| `<leader>hS` | n | Stage buffer |
|
||||||
|
| `<leader>hR` | n | Reset buffer |
|
||||||
|
| `<leader>hu` | n | Undo stage hunk |
|
||||||
|
| `<leader>hp` | n | Preview hunk |
|
||||||
|
| `<leader>hb` | n | Blame line (full) |
|
||||||
|
| `<leader>hB` | n | Toggle line blame |
|
||||||
|
| `<leader>hd` | n | Diff this |
|
||||||
|
| `<leader>hD` | n | Diff this ~ |
|
||||||
|
| `ih` | o, x | Select hunk (text object) |
|
||||||
|
|
||||||
|
### Trouble (Diagnostics Panel)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>Xx` | n | Toggle Trouble |
|
||||||
|
| `<leader>Xw` | n | Workspace diagnostics |
|
||||||
|
| `<leader>Xd` | n | Document diagnostics |
|
||||||
|
| `<leader>Xl` | n | Location list |
|
||||||
|
| `<leader>Xq` | n | Quickfix list |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Debugging (DAP)
|
||||||
|
|
||||||
|
### Debug Control
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>dcr` | n | Start/Continue debugging |
|
||||||
|
| `<leader>do` | n | Step over |
|
||||||
|
| `<leader>di` | n | Step into |
|
||||||
|
| `<leader>dot` | n | Step out |
|
||||||
|
| `<leader>db` | n | Toggle breakpoint |
|
||||||
|
| `<leader>dB` | n | Set conditional breakpoint |
|
||||||
|
| `<leader>dr` | n | Open REPL |
|
||||||
|
| `<leader>dl` | n | Run last debug config |
|
||||||
|
| `<leader>du` | n | Toggle DAP UI |
|
||||||
|
| `<leader>dq` | n | Stop debugging |
|
||||||
|
| `<leader>drt` | n | Reset DAP UI layout |
|
||||||
|
|
||||||
|
### Debug Navigation
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>dcf` | n | List/select DAP configs |
|
||||||
|
| `<leader>dcb` | n | List breakpoints |
|
||||||
|
| `<leader>dco` | n | DAP Commands (REPL) |
|
||||||
|
|
||||||
|
### Dynamic Attach
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>jd` | n | Debug attach (dynamic port, Bun/Node) |
|
||||||
|
|
||||||
|
### Project Run/Debug
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>pr` | n | Run project |
|
||||||
|
| `<leader>pd` | n | Debug project |
|
||||||
|
| `<leader>p` | n | Run project (quick) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Copilot & AI
|
||||||
|
|
||||||
|
### Copilot Commands
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>cp` | n | Open Copilot panel |
|
||||||
|
| `<leader>cD` | n | Disable Copilot |
|
||||||
|
| `<leader>cE` | n | Enable Copilot |
|
||||||
|
| `<leader>cs` | n | Copilot status |
|
||||||
|
|
||||||
|
### Copilot Panel Navigation
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `[[` | n | Previous suggestion (in panel) |
|
||||||
|
| `]]` | n | Next suggestion (in panel) |
|
||||||
|
| `<CR>` | n | Accept suggestion (in panel) |
|
||||||
|
| `rp` | n | Refresh panel |
|
||||||
|
| `<M-CR>` | n | Open panel |
|
||||||
|
|
||||||
|
### Inline Suggestions
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>]` | i | Next suggestion |
|
||||||
|
| `<leader>[` | i | Previous suggestion |
|
||||||
|
| `<C-]>` | i | Dismiss suggestion |
|
||||||
|
|
||||||
|
### CopilotChat
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>cc` | n | Toggle CopilotChat window |
|
||||||
|
| `<leader>cq` | n | Quick chat (whole buffer) |
|
||||||
|
| `<leader>ce` | n, v | Explain code |
|
||||||
|
| `<leader>cr` | n, v | Review code |
|
||||||
|
| `<leader>cf` | n, v | Fix code |
|
||||||
|
| `<leader>co` | n, v | Optimize code |
|
||||||
|
| `<leader>cd` | n, v | Generate docs |
|
||||||
|
| `<leader>ct` | n, v | Generate tests |
|
||||||
|
| `<leader>cm` | n | Select model |
|
||||||
|
|
||||||
|
### Copilot Chat (Visual, personal shortcuts)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>zn` | v | Rename variable |
|
||||||
|
| `<leader>zc` | n | Open Copilot Chat |
|
||||||
|
| `<leader>ze` | v | Explain code |
|
||||||
|
| `<leader>zr` | v | Review code |
|
||||||
|
| `<leader>zf` | v | Fix code |
|
||||||
|
| `<leader>zo` | v | Optimize code |
|
||||||
|
| `<leader>zd` | v | Generate docs |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Terminal
|
||||||
|
|
||||||
|
### ToggleTerm
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>tf` | n | Float terminal |
|
||||||
|
| `<leader>th` | n | Horizontal split terminal |
|
||||||
|
| `<leader>tv` | n | Vertical split terminal |
|
||||||
|
|
||||||
|
### Terminal Mode
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<C-h>` | t | Switch to left window |
|
||||||
|
| `<C-t>` | t | Close terminal |
|
||||||
|
| `<C-\><C-\>` | t | Escape terminal mode |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Window Management
|
||||||
|
|
||||||
|
### Splits
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>sv` | n | Split vertical |
|
||||||
|
| `<leader>sh` | n | Split horizontal |
|
||||||
|
| `<leader>se` | n | Make splits equal |
|
||||||
|
| `<leader>sx` | n | Close current split |
|
||||||
|
|
||||||
|
### Tabs
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>to` | n | Open new tab |
|
||||||
|
| `<leader>cx` | n | Close current tab |
|
||||||
|
| `<leader>tn` | n | Next tab |
|
||||||
|
| `<leader>tp` | n | Previous tab |
|
||||||
|
| `<leader>tt` | n | Open buffer in new tab |
|
||||||
|
|
||||||
|
### Resize Splits
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<C-h>` | n | Increase width (+5) |
|
||||||
|
| `<C-l>` | n | Decrease width (-5) |
|
||||||
|
| `<C-k>` | n | Increase height (+5) |
|
||||||
|
| `<C-j>` | n | Decrease height (-5) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Database
|
||||||
|
|
||||||
|
### vim-dadbod UI
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>Du` | n | Toggle Database UI |
|
||||||
|
| `<leader>Da` | n | Add DB connection |
|
||||||
|
| `<leader>Df` | n | Find DB buffer |
|
||||||
|
| `<leader>De` | n, v | Execute query |
|
||||||
|
| `<leader>Dw` | n | Save query |
|
||||||
|
| `<leader>Dr` | n | Rename DB buffer |
|
||||||
|
|
||||||
|
### Quick Connections
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>Dp` | n | PostgreSQL Docker |
|
||||||
|
| `<leader>Dm` | n | MongoDB local |
|
||||||
|
| `<leader>DM` | n | MongoDB Docker |
|
||||||
|
| `<leader>Di` | n | Redis local |
|
||||||
|
| `<leader>DI` | n | Redis Docker |
|
||||||
|
|
||||||
|
### Redis & MongoDB (plugins.lua)
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>rds` | n | Open Redis |
|
||||||
|
| `<leader>rdk` | n | Show Redis keys |
|
||||||
|
| `<leader>rdi` | n | Redis info |
|
||||||
|
| `<leader>mdb` | n | Open MongoDB |
|
||||||
|
| `<leader>mdc` | n | Connect MongoDB |
|
||||||
|
| `<leader>mdd` | n | Disconnect MongoDB |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## LeetCode
|
||||||
|
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>lr` | n | Run code |
|
||||||
|
| `<leader>ls` | n | Submit code |
|
||||||
|
| `<leader>ld` | n | Daily challenge |
|
||||||
|
| `<leader>ll` | n | List problems |
|
||||||
|
| `<leader>lc` | n | Open console |
|
||||||
|
| `<leader>lu` | n | Update cookie |
|
||||||
|
| `<leader>lh` | n | Show hints |
|
||||||
|
| `<leader>lls` | n | Get latest submission |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Text Wrapping
|
||||||
|
|
||||||
|
### Wrapping Controls
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>tw` | n | Toggle line wrapping |
|
||||||
|
| `<leader>tl` | n | Toggle line break |
|
||||||
|
| `<leader>tx` | n | Show 80-char column guide |
|
||||||
|
| `<leader>tH` | n | Hide column guide |
|
||||||
|
|
||||||
|
### Format Text
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>tpg` | n | Format paragraph |
|
||||||
|
| `<leader>tf` | v | Format selection |
|
||||||
|
| `<leader>tF` | n | Format entire file |
|
||||||
|
|
||||||
|
### Text Width
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>t80` | n | Set textwidth to 80 |
|
||||||
|
| `<leader>t100` | n | Set textwidth to 100 |
|
||||||
|
| `<leader>t120` | n | Set textwidth to 120 |
|
||||||
|
| `<leader>t0` | n | Disable textwidth |
|
||||||
|
|
||||||
|
### Auto-wrap Controls
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>ta` | n | Enable auto-wrap text |
|
||||||
|
| `<leader>tA` | n | Disable auto-wrap text |
|
||||||
|
| `<leader>tc` | n | Enable auto-wrap comments |
|
||||||
|
| `<leader>tC` | n | Disable auto-wrap comments |
|
||||||
|
| `<leader>ti` | n | Toggle break indent |
|
||||||
|
| `<leader>ts` | n | Show break indicator |
|
||||||
|
| `<leader>tS` | n | Hide break indicator |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Folding (nvim-ufo)
|
||||||
|
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `zR` | n | Open all folds |
|
||||||
|
| `zM` | n | Close all folds |
|
||||||
|
| `zr` | n | Open folds except kinds |
|
||||||
|
| `zm` | n | Close folds by level |
|
||||||
|
| `K` | n | Peek fold or LSP hover |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session Management
|
||||||
|
|
||||||
|
| Key | Mode | Action |
|
||||||
|
|-----|------|--------|
|
||||||
|
| `<leader>sS` | n | Session: Save |
|
||||||
|
| `<leader>sR` | n | Session: Restore |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `:Lazy` | Plugin manager |
|
||||||
|
| `:Mason` | LSP server manager |
|
||||||
|
| `:Navbuddy` | Code navigation |
|
||||||
|
| `:Outline` | Symbol outline |
|
||||||
|
| `:Neogit` | Git interface |
|
||||||
|
| `:DiffviewOpen` | Diff view |
|
||||||
|
| `:GrugFar` | Search & replace |
|
||||||
|
| `:Octo` | GitHub PRs/issues |
|
||||||
|
| `:OverseerRun` | Run tasks |
|
||||||
|
| `:ZenMode` | Distraction-free mode |
|
||||||
|
| `:Hardtime toggle` | Toggle vim training |
|
||||||
|
| `:TSJToggle` | Toggle split/join |
|
||||||
|
| `:WordCount` | Show word count (excluding symbols) |
|
||||||
|
| `:RunProject` | Run project command |
|
||||||
|
| `:DebugProject` | Debug project command |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Last Updated: February 10, 2026*
|
||||||
Reference in New Issue
Block a user