A modern, feature-rich Neovim configuration focused on providing a complete development environment. Built with Lua and designed for extensibility.
-
🚀 Performance
- Fast startup with lazy loading and optimized initialization
- Efficient plugin management with Lazy.nvim
- Startup profiling support (AVIM_PROFILE env var)
- Optimized file operations with better error handling
-
🎨 User Interface
- Dynamic theme switching based on time
- Beautiful and functional UI components with Snacks.nvim
- Random Alpha logos/banners
- Winbar with context information (Dropbar)
- Advanced file picker with line number jump support (:123 syntax)
-
📝 Development
- Advanced LSP integration with buffer-local keymaps
- Modern completion engine with Blink.cmp
- AI coding assistant (CodeCompanion)
- Codeium integration
- Git integration with conflict resolution
- Database integration with Dbee
- Unified logging system (all logs go to avim.log)
-
🔧 Tools & Utilities
- Fuzzy finding with Snacks picker (with preview highlighting)
- File tree with NeoTree and Oil
- Terminal integration with floating and split options
- REST API client
- Session management with Persisted
- Advanced search and replace with GrugFar
- Multiple cursors support
-
⚙️ Configuration
- Type checking and linting
- Automatic package management with Mason
- Extensive customization options
- Well-documented codebase with type annotations
- Custom update system (:AnoUpdate, :AnoCheckUpdate, :AnoVersion)
- Neovim >= 0.11.0
- Git >= 2.19.0
- A Nerd Font (Optional but recommended)
- For optional features:
- Node.js >= 20
- Python >= 3.7
- Go >= 1.20
- Rust ( >= latest stable)
bash <(curl -s https://raw.githubusercontent.com/AnoRebel/AnoNvim/main/.install/installer.sh)Options:
-h, --help Print this help message
-l, --local Install local copy of AnoNvim
-y, --yes Automatic yes to prompts
--overwrite Overwrite existing configuration
--no-install-dependencies Skip dependency installation
--neovide Install Neovide GUI
--neoray Install Neoray GUIAfter installation:
- Run
avimto start AnoNvim - Initial setup will install required plugins
.
├── init.lua # Main entry point
├── lua/avim
│ ├── core # Core functionality
│ │ ├── defaults.lua # Default settings
│ │ ├── init.lua # Core initialization
│ │ ├── log.lua # Logging system
│ │ └── settings.lua # Neovim settings
│ ├── commands.lua # Commands and autocommand definitions
│ ├── health.lua # Health check
│ ├── icons.lua # Icon definitions
│ ├── lazy.lua # Plugin management
│ ├── update.lua # Update system
│ ├── plugins # Plugin configurations
│ │ ├── ai.lua # AI related configurations
│ │ ├── bufferline.lua # Bufferline(top bar) configurations
│ │ ├── completions.lua # Code completion configurations
│ │ ├── database.lua # Database configurations
│ │ ├── editor.lua # Editor configurations
│ │ ├── explorer.lua # File explorer configurations
│ │ ├── extras.lua # Extra plugin configurations
│ │ ├── formatting.lua # Code formatting configurations
│ │ ├── git.lua # Git configurations
│ │ ├── lsp.lua # LSP configurations
│ │ ├── lualine.lua # Lualine(bottom bar) configurations
│ │ ├── remote.lua # Remote Coding configurations
│ │ ├── rest.lua # Rest client configurations
│ │ ├── search.lua # Search and Replace configurations
│ │ ├── snacks.lua # Folke's Snacks configurations
│ │ ├── themes.lua # Themes configurations
│ │ ├── treesitter.lua # Treesitter configurations
│ │ ├── ... # Other plugin configurations
│ │ └── ui.lua # UI components and configurations
│ └── utilities # Utility functionsAnoNvim provides multiple ways to explore keybindings:
-
Keymaps Search:
Snacks.picker.keymaps()or<leader>fk
-
Which Key:
- Press
<leader>to see available key bindings - Context-aware key suggestions
- Press
Note: <leader> key is mapped to the Space key
🧠 AI Assistance
- windsurf.nvim - AI code completion
📝 Editor Enhancement
🎨 User Interface
🛠️ Development Tools
📦 Git Integration
Built upon the great works of:
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE for more details.







