3.6 KiB
3.6 KiB
🌙 Rootiest Neovim
A modern, modular, and high-performance Neovim configuration built from scratch with a focus on simplicity, speed, and standard Neovim primitives.
✨ Highlights
- Built-in Package Management: Exclusively uses
vim.packfor lightweight, native plugin management. - Phased Loading: Async, non-blocking startup using a phased
VimEnterqueue for a snappy experience. - Unified Registry: Configuration is managed via a global
_G.Configregistry, ensuring cross-plugin consistency. - High Performance: Featuring blink.cmp (Rust-based completion) and optimized Snacks.nvim components.
- AI-Powered: Native integration with the GitHub Copilot Language Server.
- User-Centric QoL: Hybrid line numbers, autosave-on-edit, and seamless system clipboard integration.
- Resilient & Portable: Intelligent terminal title management (Kitty + Fallback) and automatic project root detection.
- Lean & Readable: ~741 lines of Lua code (excluding comments and blanks).
📁 Architecture
The configuration is strictly modular:
init.lua: Entry point and global state initialization.lua/lazyload.lua: Logic for async and phased plugin loading.lua/options.lua: Global Vim settings, root management, and terminal title logic.lua/plugins.lua: Plugin declarations and detailed registry-based configurations.lua/keymaps.lua: Centralized user-facing keybindings.lua/const.lua: Stores constant values (like dashboard headers) for the configuration.
🛠️ System Dependencies
To ensure all features (pickers, formatters, and LSPs) work correctly, the following packages are required:
Essential Tools
git,curl,unzip,build-essential(orbase-devel)ripgrep(Grep support)fd(Fast file finding)fzf(Fuzzy finder fallback)lazygit(Git TUI)gh(GitHub CLI integration)xclip/xsel(X11) orwl-copy(Wayland) for clipboard sync.
Runtime Environments
Node.js&npm(Copilot and various LSPs)Python3&pip(Python LSPs)Cargo(Rust toolchain, required for buildingblink.cmp)
Installation Commands
Debian / Ubuntu:
sudo apt install git ripgrep fd-find fzf lazygit gh xclip nodejs npm build-essential curl unzip
Arch Linux:
sudo pacman -S git ripgrep fd fzf lazygit github-cli xclip nodejs npm base-devel curl unzip
🚀 Getting Started
Installation
git clone https://github.com/your-username/nvim-config ~/.config/nvim
nvim
Post-Install
- Build Blink: If completion isn't working, run
cargo build --releaseinside~/.local/share/nvim/site/pack/core/opt/blink.cmp. - LSP Servers: Run
:Masonto monitor the installation of Language Servers. - Copilot: Run
:LspCopilotSignInto authenticate.
⌨️ Key Features & Mappings
| Key | Description |
|---|---|
<leader><space> |
Smart Find Files (Snacks) |
<leader>e |
File Explorer (Snacks) |
<leader>sr |
Search and Replace (Grug-far) |
<leader>gg |
Open Lazygit |
<leader>qs |
Restore Last Session (Persistence) |
<leader>cf |
Format Buffer (Conform) |
<leader>uu |
Toggle Undo Tree |
<leader>z |
Toggle Zen Mode |
gd / gr |
Goto Definition / References |
K |
Hover Documentation |
s / S |
Leap Motion (Normal/Window) |
ys / ds / cs |
Surround (Add/Delete/Change) |
:Q |
Forced Write-All and Quit |
📜 License
Distributed under the GPLv3 or later License. See LICENSE for more information.