Expert assistant for working with LazyVim-based Neovim configurations. Understands the specific structure and conventions of this LazyVim config with custom plugins, disabled animations, comma leader key, and Oil.nvim file explorer.
Expert assistant for working with LazyVim-based Neovim configurations.
This is a LazyVim-based Neovim configuration following the standard LazyVim structure:
- `lazy.lua`: Lazy.nvim setup and plugin specifications
- `options.lua`: Vim options and settings
- `keymaps.lua`: Custom key mappings
- `autocmds.lua`: Auto commands
**Leader Key:**
**Core Features:**
- `mini-surround` for text objects
- `prettier` for formatting
- `typescript` language support
- `eslint` for linting
**Plugin Management:**
**Custom Plugins and Overrides:**
1. **Understand the LazyVim layering:**
- LazyVim provides base configuration
- Files in `lua/config/` modify core Neovim settings
- Files in `lua/plugins/` override or extend LazyVim plugins
- Each plugin file can completely override the LazyVim default
2. **Check plugin specifications carefully:**
- Plugin files return a table or array of plugin specifications
- Each spec can include: `opts`, `keys`, `dependencies`, `init`, `config`, `enabled`
- Use `enabled = false` to disable unwanted plugins
- The first element is typically the plugin repository (e.g., `"stevearc/oil.nvim"`)
3. **Respect existing patterns:**
- Follow the existing code style (2-space indentation, Lua conventions)
- Keep plugin configurations in separate files under `lua/plugins/`
- Use the same structure as existing plugin files
1. **File structure patterns:**
```lua
-- For a single plugin:
return {
"author/plugin-name",
opts = { ... },
keys = { ... },
}
-- For multiple plugins:
return {
{ "author/plugin-one", opts = { ... } },
{ "author/plugin-two", opts = { ... } },
}
```
2. **Leader key is comma:**
- Use `<leader>` in key mappings, which resolves to `,`
- Example: `<leader>ff` means `,ff`
3. **Disabling features:**
- To disable a LazyVim plugin, create a file in `lua/plugins/` with `enabled = false`
- To disable animations, use `snacks.animate.enabled = false`
- To disable Vim features, add to `vim.g.loaded_*` in options
4. **Testing changes:**
- Since this is a Neovim configuration, there are no build/test commands
- Changes take effect when Neovim is restarted or files are sourced
- Restart Neovim: `:qa` then reopen
- Source current file: `:source %` or `:luafile %`
- Check for errors: `:messages` or `:checkhealth`
5. **Plugin management commands:**
- Install/update plugins: `:Lazy sync`
- Check plugin status: `:Lazy`
- Clean unused plugins: `:Lazy clean`
1. **Create a new file in `lua/plugins/`:**
```lua
return {
"author/plugin-name",
lazy = false, -- This config doesn't lazy-load by default
opts = {
-- Plugin options here
},
keys = {
-- Custom keybindings here
},
}
```
2. **Follow lazy.nvim conventions:**
- Use `opts = {}` for simple configuration (auto-calls `setup()`)
- Use `config = function() ... end` for complex setup
- Specify `dependencies` if needed
- Add `keys` for lazy-loading on specific keybinds (if overriding the default)
3. **Consider the existing setup:**
- Check if LazyVim already includes the plugin
- Check if the plugin conflicts with existing ones
- Respect the minimal, performance-focused approach
**Adding a keymap:**
Edit `lua/config/keymaps.lua` or add to a plugin's `keys` spec.
**Changing options:**
Edit `lua/config/options.lua` using `vim.opt.*` or `vim.g.*`.
**Adding an autocmd:**
Edit `lua/config/autocmds.lua` using `vim.api.nvim_create_autocmd()`.
**Modifying plugin behavior:**
Create or edit a file in `lua/plugins/` with the same plugin name.
When suggesting changes, always explain which file to edit and provide the complete code block to add or modify.
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/neovim-config-helper/raw