Skip to main content

Neovim Configuration Overview

Gentleman.Dots includes GentlemanNvim, a sophisticated Neovim configuration built on top of LazyVim, optimized for frontend development with Angular, React, and TypeScript, while supporting a wide range of languages and workflows.

Philosophy

The configuration follows these core principles:

LazyVim Foundation

Built on LazyVim’s stable base with carefully selected extras

AI-First Development

Multiple AI assistants integrated for modern workflows

Tmux Integration

Seamless navigation between Neovim and tmux panes

Performance Focused

Lazy loading and optimized runtime paths

Key Features

LazyVim Base Configuration

The setup bootstraps LazyVim automatically and imports curated plugin collections:
Editor Enhancements:
  • lazyvim.plugins.extras.editor.harpoon2 - Quick file navigation
  • lazyvim.plugins.extras.editor.mini-files - File explorer
  • lazyvim.plugins.extras.editor.snacks_picker - Enhanced file/text picker
  • lazyvim.plugins.extras.editor.mini-diff - Git diff viewing
Language Support:
  • TypeScript & Angular - Full LSP support
  • JSON, Markdown, TOML - Enhanced editing
  • Go, Nix, Astro - Multi-language development
Code Quality:
  • Prettier & Biome - Code formatting
  • ESLint - JavaScript/TypeScript linting
Completion & AI:
  • Blink.cmp - Modern completion engine
  • Copilot & Copilot Chat - AI pair programming

Configuration Structure

The configuration is organized in a modular structure:
GentlemanNvim/nvim/
├── init.lua                    # Entry point
├── lua/
│   ├── config/
│   │   ├── lazy.lua            # Plugin manager setup
│   │   ├── keymaps.lua         # Custom keybindings
│   │   ├── options.lua         # Neovim options
│   │   ├── autocmds.lua        # Auto commands
│   │   └── nodejs.lua          # Node.js configuration
│   └── plugins/
│       ├── copilot.lua         # GitHub Copilot
│       ├── opencode.lua        # OpenCode integration
│       ├── avante.lua          # Avante AI assistant
│       ├── code-companion.lua  # CodeCompanion AI
│       ├── blink.lua           # Completion engine
│       ├── ui.lua              # UI enhancements
│       ├── editor.lua          # Editor plugins
│       ├── oil.lua             # File manager
│       ├── obsidian.lua        # Note-taking
│       └── ...

Initial Setup

1

Bootstrap Process

On first launch, Neovim automatically:
  • Clones lazy.nvim plugin manager
  • Installs all configured plugins
  • Sets up LSP servers and formatters
  • Configures Node.js integration
2

Node.js Configuration

The setup ensures compatibility with the latest Node.js:
vim.g.node_host_prog = vim.fn.exepath("node")
Required for LSP servers, formatters, and AI assistants.
3

Clipboard Integration

Special handling for WSL environments:
vim.opt.clipboard = "unnamedplus"
-- WSL uses win32yank for clipboard operations

Core Settings

Spell Checking

vim.opt.spell = true
vim.opt.spelllang = { "en" }
English spell checking is enabled by default for documentation and markdown files.

Timeout Configuration

vim.opt.timeoutlen = 1000  -- Key sequence timeout
vim.opt.ttimeoutlen = 0    -- No terminal key code delay
Balanced settings for which-key popup display and terminal responsiveness.

Performance Optimizations

Disabled runtime plugins for faster startup:
The configuration disables unnecessary runtime plugins like gzip, tar, and zip handlers to improve startup time without sacrificing essential functionality.
performance = {
  rtp = {
    disabled_plugins = {
      "gzip",
      "tarPlugin",
      "tohtml",
      "tutor",
      "zipPlugin",
    },
  },
}

Theme & UI

Active Colorscheme

The default theme is gentleman-kanagawa-blur, a custom variant of the popular Kanagawa theme:
colorscheme = "gentleman-kanagawa-blur"
  • gentleman-kanagawa-blur (default) - Custom transparent Kanagawa
  • oldworld.nvim - Custom retro theme
  • kanagawa.nvim - Original Kanagawa with transparency
  • catppuccin (mocha) - Popular pastel theme
  • tokyonight - LazyVim default fallback

Statusline

Custom lualine configuration with:
  • Compact mode indicators
  • Git integration
  • LSP status
  • Special buffers for Oil and CodeCompanion

Next Steps

Explore Plugins

Discover 25+ carefully configured plugins

Learn Keymaps

Master custom keybindings and shortcuts

LSP Configuration

Language servers and code intelligence

AI Assistants

Multiple AI coding assistants at your fingertips
This configuration is actively maintained and optimized for frontend development workflows. Check the source code in GentlemanNvim/nvim/ for the latest updates.

Build docs developers (and LLMs) love