Skip to content

AnoRebel/AnoNvim

Repository files navigation

AnoNvim

AnoNvim

A modern, feature-rich Neovim configuration focused on providing a complete development environment. Built with Lua and designed for extensibility.

Features

  • 🚀 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)

Requirements

  • 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)

Installation

bash <(curl -s https://raw.githubusercontent.com/AnoRebel/AnoNvim/main/.install/installer.sh)

Installation Options

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 GUI

After installation:

  1. Run avim to start AnoNvim
  2. Initial setup will install required plugins

Directory Structure

.
├── 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 functions

Key Bindings

AnoNvim provides multiple ways to explore keybindings:

  1. Keymaps Search:

    • Snacks.picker.keymaps() or <leader>fk
  2. Which Key:

    • Press <leader> to see available key bindings
    • Context-aware key suggestions

Note: <leader> key is mapped to the Space key

Plugin Categories

🧠 AI Assistance
📝 Editor Enhancement
🎨 User Interface
🛠️ Development Tools
📦 Git Integration

Gallery

Screenshots (Click to expand)

Dashboard NeoTree Keymaps Search and Replace Themes Terminal Database

Credits

Built upon the great works of:

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE for more details.

About

My personal Neovim config

Topics

Resources

License

Stars

Watchers

Forks

Languages