Skip to content

jaehong21/neovim-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Neovim Configuration

A comprehensive Neovim configuration for jaehong21 powered by lazy.nvim package manager, featuring modern LSP integration, extensive plugin ecosystem, and multi-language development support.

Package Manager: lazy.nvim

This configuration uses lazy.nvim, a modern plugin manager for Neovim that provides:

  • Lazy Loading: Plugins are loaded only when needed, improving startup time
  • Automatic Installation: Missing plugins are automatically installed on first run
  • Lockfile Support: lazy-lock.json ensures reproducible plugin versions
  • Performance Monitoring: Built-in profiling to track plugin load times
  • Simple Configuration: Each plugin is configured in its own file under
  • Configuration Merging: opts tables are automatically merged when importing specs, enabling modular configuration of tools like conform.nvim and nvim-lint across multiple files lua/plugins/
  • Dependency Management: Automatic handling of plugin dependencies

Structure

~/.config/nvim/
β”œβ”€β”€ init.lua                 # Entry point
β”œβ”€β”€ lazy-lock.json          # Plugin version lockfile
β”œβ”€β”€ stylua.toml            # Lua formatting configuration
└── lua/
    β”œβ”€β”€ config/            # Core configuration
    β”‚   β”œβ”€β”€ init.lua       # Main config loader
    β”‚   β”œβ”€β”€ keymaps.lua    # Key mappings
    β”‚   └── options.lua    # Vim options
    β”œβ”€β”€ lsp/              # Language Server configurations
    β”‚   β”œβ”€β”€ bash.lua
    β”‚   β”œβ”€β”€ dockerfile.lua
    β”‚   β”œβ”€β”€ go.lua
    β”‚   β”œβ”€β”€ java.lua
    β”‚   β”œβ”€β”€ json.lua
    β”‚   β”œβ”€β”€ lua.lua
    β”‚   β”œβ”€β”€ makefile.lua
    β”‚   β”œβ”€β”€ markdown.lua
    β”‚   β”œβ”€β”€ nix.lua
    β”‚   β”œβ”€β”€ python.lua
    β”‚   β”œβ”€β”€ rust.lua
    β”‚   β”œβ”€β”€ terraform.lua
    β”‚   β”œβ”€β”€ web.lua
    β”‚   └── yaml.lua
    └── plugins/          # Plugin configurations
        β”œβ”€β”€ aerial.lua         # Code outline viewer
        β”œβ”€β”€ autopairs.lua      # Auto bracket pairing
        β”œβ”€β”€ barbar.lua         # Buffer tabline
        β”œβ”€β”€ blink-cmp.lua      # Completion engine
        β”œβ”€β”€ colorscheme.lua    # Theme configuration
        β”œβ”€β”€ comment.lua        # Smart commenting
        β”œβ”€β”€ conform.lua        # Code formatting
        β”œβ”€β”€ copilot.lua        # AI code assistance
        β”œβ”€β”€ dashboard.lua      # Start screen
        β”œβ”€β”€ explorer.lua       # File explorer
        β”œβ”€β”€ gitsigns.lua       # Git integrations
        β”œβ”€β”€ harpoon.lua        # Quick file navigation
        β”œβ”€β”€ highlight-colors.lua # Highlight color
        β”œβ”€β”€ indent.lua         # Indentation guides
        β”œβ”€β”€ lualine.lua        # Status line
        β”œβ”€β”€ markdown-preview.lua # Markdown preview
        β”œβ”€β”€ noice.lua          # UI enhancements
        β”œβ”€β”€ nvim-lint.lua      # Linting
        β”œβ”€β”€ nvim-lspconfig.lua # LSP client config
        β”œβ”€β”€ nvim-treesitter.lua # Syntax highlighting
        β”œβ”€β”€ nvim-ufo.lua       # Code folding
        β”œβ”€β”€ oil.lua            # File manager
        β”œβ”€β”€ picker.lua         # Fuzzy finder
        β”œβ”€β”€ snacks.lua         # Utilities
        β”œβ”€β”€ todo-comments.lua  # TODO highlighting
        β”œβ”€β”€ trouble.lua        # Diagnostics viewer
        └── wakatime.lua       # Time tracking

Features

Language Server Protocol (LSP)

  • Native Vim LSP: Uses vim.lsp for language server integration
  • LSP installed manually: Language servers are installed from nixpkgs manually
  • Multi-language Support: Dedicated configurations for 15+ languages
  • Auto-completion: Powered by blink-cmp for fast, intelligent completions
  • Diagnostics: Real-time error detection and inline hints
  • Code Actions: Quick fixes and refactoring suggestions

Supported Languages

  • Go - Full LSP support with gopls
  • Python - Enhanced with pylsp/pyright
  • Rust - Comprehensive rust-analyzer integration
  • JavaScript/TypeScript - Modern web development tools
  • Java - Enterprise development support
  • Lua - Neovim configuration development
  • Bash/Shell - Script development tools
  • Docker - Dockerfile support
  • Terraform - Infrastructure as code
  • Nix - Package management
  • Markdown - Documentation writing
  • JSON/YAML - Configuration files
  • Makefile - Build automation

Development Tools

  • Code Formatting: Conform.nvim with format-on-save
  • Linting: nvim-lint for additional code quality checks
  • Git Integration: Built-in git commands and UI
  • File Management: Multiple file explorers (snacks explorer, oil)
  • Fuzzy Finding: Fast file and content search
  • Debugging: Multi-language debug support
  • AI Assistance: GitHub Copilot integration

User Interface

  • Modern UI: Enhanced with noice.nvim and snacks.nvim
  • Status Line: Informative lualine configuration
  • Buffer Management: Barbar for tab-like buffer navigation
  • Code Outline: Aerial for symbol navigation
  • Folding: UFO for improved code folding
  • Indentation: Visual guides for code structure

Installation

  1. Backup existing configuration (if any):

    mv ~/.config/nvim ~/.config/nvim.bak
  2. Clone this configuration:

    git clone <your-repo-url> ~/.config/nvim
  3. Start Neovim:

    nvim
  4. Wait for installation: lazy.nvim will automatically install all plugins on first run

Key Features

  • Fast Startup: Lazy loading ensures quick Neovim startup times
  • Consistent Formatting: Stylua and conform.nvim maintain code quality
  • Productive Workflow: Carefully chosen keymaps and integrations
  • Extensible: Modular plugin structure for easy customization
  • Modern Tooling: Latest Neovim features and plugin ecosystem
  • Multi-language: Comprehensive support for diverse development needs

This configuration aims to provide a comfortable and productive development environment with modern tooling and extensive language support, all managed efficiently through lazy.nvim's powerful plugin management system.

About

😚 jaehong21's personal Neovim config collection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages