A carefully organized, modular Neovim configuration with intelligent terminal detection, LSP integration, completion, and modern editor features.
git clone https://github.com/ehzawad/lua-configs ~/.config/nvim
git clone [email protected]:ehzawad/lua-configs.git ~/.config/nvim
This configuration requires several external dependencies:
- Nerd Font - For icons and special characters
- Install from Nerd Fonts or with Homebrew:
brew tap homebrew/cask-fonts && brew install --cask font-hack-nerd-font
- Ripgrep - For telescope grep functionality
brew install ripgrep
- fd - Better find alternative for telescope
brew install fd
- Node.js - Required for many LSP servers
brew install node
or use nvm
- Luarocks - Lua package manager
brew install luarocks
- Rust - For certain plugins and tools
brew install rust
- iTerm2 (macOS) - Terminal with better color support and functionality
- Configure Meta key (M key) in iTerm2 for additional keybindings
brew install --cask iterm2
- make - Required for building some plugins
- Usually pre-installed on macOS
For Linux systems, equivalent packages will need to be installed using your distribution's package manager.
Note: This configuration does not officially support Windows.
- Terminal Detection - Automatically adapts UI to terminal capabilities
- Intelligent LSP Configuration - Easy language server setup with Mason
- Modern Completion System - Combines LSP and Codeium/Copilot capabilities
- Advanced Git Integration - Gitsigns for inline git blame and actions
- File Navigation - Oil.nvim and Telescope for intuitive file management
- Code Structure - Aerial for code outline and symbol navigation
- Performance Optimizations - Lazy loading and efficient plugin management
A ton of stuff is going on under the hood. Please read through the configuration files before making changes. The modular structure makes it easy to modify specific parts without breaking everything.
The configuration is organized in a modular fashion - core settings are separated from plugin configurations, making it easy to understand and modify specific components.
- Terminal-specific optimizations auto-adjust based on your terminal (basic Terminal.app vs. feature-rich like iTerm2)
- Meta key (
M
key) bindings require proper iTerm2 configuration - The configuration regularly gets improvements - pull the latest version periodically
- Created and maintained by Emrul Hasan Zawad ([email protected])
If you encounter issues:
- Run
:checkhealth
to diagnose common problems - Use
:Lazy
to check plugin status and errors - See if all dependencies are properly installed
- For LSP issues, run
:LspInfo
and:Mason
to verify servers
MIT
For questions or suggestions: [email protected]