neovim-expert

edheltzel's avatarfrom edheltzel

Expert Neovim/Lua configuration assistant for NOE.ED (LazyVim-based setup). Covers plugin configuration, LSP setup, keymaps, Mason, TreeSitter, and troubleshooting. Trigger with: neovim skill, lua skill, nvim skill, neoed skill, lazy skill (or plurals). Use for: LSP config help, error troubleshooting, keymap creation, plugin setup, theme customization.

⭐1stars🔀0forks📁View on GitHub🕐Updated Jan 1, 2026

When & Why to Use This Skill

This Claude skill acts as a specialized Neovim and Lua configuration expert tailored for the NOE.ED environment, a sophisticated LazyVim-based setup. It streamlines the management of complex editor configurations by providing instant guidance on plugin integration, LSP (Language Server Protocol) optimization, and custom keymap architecture. By leveraging a deep understanding of the three-level plugin loading system, it helps developers maintain a high-performance, personalized IDE while minimizing the time spent on troubleshooting and manual setup.

Use Cases

  • LSP Configuration: Assistance in extending or modifying LSP server settings and Mason-managed tools for specific programming languages.
  • Plugin Management: Guidance on adding, overriding, or disabling plugins using the lazy.nvim specification within the structured directory system.
  • Keymap Orchestration: Creating and organizing custom keybindings and which-key groups to improve workflow efficiency and discoverability.
  • UI Customization: Tailoring the visual experience, including statusline (Lualine) modifications and theme adapter adjustments for the Eldritch colorscheme.
  • Error Troubleshooting: Diagnosing and resolving configuration errors, plugin conflicts, or TreeSitter issues within the Neovim ecosystem.
nameneovim-expert
description"Expert Neovim/Lua configuration assistant for NOE.ED (LazyVim-based setup). Covers plugin configuration, LSP setup, keymaps, Mason, TreeSitter, and troubleshooting. Trigger with: neovim skill, lua skill, nvim skill, neoed skill, lazy skill (or plurals). Use for: LSP config help, error troubleshooting, keymap creation, plugin setup, theme customization."

NOE.ED Neovim Expert

Expert assistance for the NOE.ED Neovim configuration - a LazyVim-based setup with extensive customizations.

Configuration Location

/Users/ed/.dotfiles/nvim/.config/nvim/

Architecture Overview

NOE.ED uses a three-level plugin loading system (lua/config/lazy.lua):

  1. Core LazyVim - lazyvim.plugins
  2. Custom plugins - lua/plugins/ (organized by category)
  3. Language configs - lua/plugins/languages/

Directory Structure

lua/
├── config/
│   ├── lazy.lua      # Plugin manager bootstrap
│   ├── options.lua   # Vim options
│   ├── keymaps.lua   # Custom keybindings
│   ├── autocmds.lua  # Autocommands
│   └── filetypes.lua # Custom filetype associations
└── plugins/
    ├── disabled.lua  # Disabled plugins
    ├── ai/           # Claude Code, Codeium
    ├── coding/       # surround, emmet
    ├── editor/       # git, multicursor
    ├── formatting/   # conform, prettier
    ├── languages/    # LSP configs per language
    ├── linting/      # biome
    ├── ui/           # themes, lualine
    ├── utils/        # snacks
    └── dap/          # debugger configs

Key Files

File Purpose
lazyvim.json Enabled LazyVim extras (32 extras)
lazy-lock.json Plugin version lockfile
lua/config/keymaps.lua Custom keybindings
lua/plugins/ui/lualine.lua Custom statusline (253 lines)
lua/plugins/ui/lualine/neoed.lua Theme adapter

Quick Reference

Adding a New Plugin

Create file in appropriate category under lua/plugins/:

return {
  "author/plugin-name",
  event = "VeryLazy",
  opts = {
    -- options
  },
}

Extending LSP Server Config

Create/edit file in lua/plugins/languages/:

return {
  {
    "neovim/nvim-lspconfig",
    opts = {
      servers = {
        servername = {
          settings = { servername = { option = value } },
        },
      },
    },
  },
}

Adding a Keymap

Edit lua/config/keymaps.lua:

local set = vim.keymap.set
set("n", "<leader>xx", "<cmd>Command<cr>", { desc = "Description" })

-- For which-key groups:
local wk = require("which-key")
wk.add({ { "<leader>x", group = "Group Name", icon = { icon = "X", color = "blue" } } })

Disabling a Plugin

Add to lua/plugins/disabled.lua:

return {
  { "plugin/name", enabled = false },
}

References

Active Theme

Eldritch - Dark purple theme with custom Lualine statusline.

Theme colors defined in lua/plugins/ui/lualine/neoed.lua.

Leader Key

<Space> is the leader key. Key groups:

  • <leader>a - AI/Claude Code
  • <leader>f - File operations
  • <leader>g - Git
  • <leader>j - Jump/Flash
  • <leader>w - Window navigation