Skip to content

Maik-0000FF/VelocityNvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

253 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

VelocityNvim

Native vim.pack Neovim Distribution - No Plugin Manager Required

License: MIT Neovim Native vim.pack Ko-fi

A modern Neovim distribution built on native vim.pack architecture with modern vim.lsp.config API.

Website: https://velocitynvim.com

VelocityNvim Demo

Features

  • Native vim.pack - No external plugin manager, pure Git operations
  • Eager Loading - All plugins load at startup, no mid-workflow interruptions
  • Modern LSP - vim.lsp.config API with global configuration pattern
  • Rust-Powered - Optimized tools (fzf, ripgrep, fd, blink.cmp)
  • Optional Packages - Choose LaTeX, Typst, or Strudel support during installation

Requirements

Essential

  • Neovim >= 0.11.0
  • Git
  • GCC/Clang (for Treesitter parser compilation)
  • NerdFont (recommended: MesloLGS NF)

Full Installation (Recommended)

One-liner to install all dependencies for the complete VelocityNvim experience:

# Arch Linux - Full Installation
sudo pacman -S --needed neovim git gcc base-devel fzf ripgrep fd bat git-delta rust nodejs npm lua-language-server pyright rust-analyzer stylua shfmt && npm install -g prettier typescript typescript-language-server vscode-langservers-extracted

# macOS - Full Installation
brew install neovim git fzf ripgrep fd bat git-delta rust node lua-language-server pyright rust-analyzer stylua shfmt && npm install -g prettier typescript typescript-language-server vscode-langservers-extracted

Minimal Installation

For a lightweight setup with core functionality:

# Arch Linux - Minimal
sudo pacman -S --needed neovim git gcc fzf ripgrep fd

# macOS - Minimal
brew install neovim git fzf ripgrep fd

What Each Package Provides

Category Packages Purpose
Core neovim, git, gcc Editor, version control, Treesitter compilation
Search fzf, ripgrep, fd Fuzzy finding, fast grep, file discovery
Git bat, git-delta Syntax-highlighted previews, better diffs
Rust rust blink.cmp performance binary
LSP lua-language-server, pyright, rust-analyzer Language servers
Web LSP vscode-langservers-extracted, typescript-language-server HTML/CSS/JSON/TS support
Formatters stylua, shfmt, prettier Code formatting

Optional: LaTeX Support

# Arch Linux
sudo pacman -S --needed texlab texlive-basic texlive-binextra latexmk

# macOS
brew install texlab && brew install --cask mactex

Optional: Typst Support

# Arch Linux
sudo pacman -S --needed typst tinymist

# macOS
brew install typst && cargo install tinymist

Optional: Strudel (Live Coding Music)

# Requires Node.js (included in full installation)
# Browser: chromium, brave, or firefox
sudo pacman -S --needed chromium  # or: brave-bin (AUR)

Installation

Standard Installation

# Backup existing config
[ -d ~/.config/nvim ] && mv ~/.config/nvim ~/.config/nvim.backup

# Clone VelocityNvim
git clone https://github.com/Maik-0000FF/VelocityNvim.git ~/.config/nvim

# Launch - First-Run Installer starts automatically
nvim

Parallel Installation (keep existing config)

# Clone to separate directory
git clone https://github.com/Maik-0000FF/VelocityNvim.git ~/.config/VelocityNvim

# Launch - First-Run Installer starts automatically
NVIM_APPNAME=VelocityNvim nvim

# Optional: Add alias to ~/.bashrc or ~/.zshrc
alias velocity="NVIM_APPNAME=VelocityNvim nvim"

First-Run Installer

On first launch, VelocityNvim automatically starts a terminal-based installer that guides you through the setup:

Phase 1: System Detection

  • Detects OS, package manager, and installed tools
  • Checks for C compiler, Rust, Node.js, and LSP servers

Phase 2: Package Selection

  • [1] Core Installation - Basic editor with LSP, completion, file explorer, git
  • [2] Extended Installation - Core + LaTeX, Typst, Strudel (live coding music)
  • [3] Custom Selection - Choose individual optional packages

Phase 3: Plugin Installation

  • Clones all plugins via Git (27 plugins)
  • Progress display with status indicators

Phase 4: Treesitter Parser Installation

  • Compiles syntax parsers for 15+ languages
  • Requires GCC/Clang

Phase 5: Rust Performance Build

  • Builds blink.cmp fuzzy matcher for maximum completion speed
  • Falls back to Lua if Rust unavailable

Phase 6: Optional Dependencies (Extended/Custom only)

  • Checks for LaTeX, Typst, or Strudel dependencies
  • Shows installation commands for missing tools

Optional Packages

During first-run installation, you can choose to include:

Package Description Dependencies
Strudel Live Coding Music npm, chromium/brave
LaTeX Scientific Writing texlab, latexmk
Typst Modern Typesetting tinymist, typst

Install Optional Packages Later

:OptionalPackagesToggle strudel
:OptionalPackagesToggle latex
:OptionalPackagesToggle typst
:PluginSync
" Restart Neovim

Check Status

:OptionalPackages

Essential Commands

Command Description
:PluginSync Install/update all plugins
:PluginStatus Show plugin installation status
:VelocityHealth System health check
:VelocityInfo Show version information
:LspStatus LSP server status
:NotifyHistory View notification history
:SystemDeps Show system dependency status
:SystemDepsInstall [profile] Install dependencies (minimal/standard/full)
:SystemDepsScript [profile] Generate install script for clipboard

Key Mappings

Key Description
<Space> Leader key
File Explorer
<C-n> Toggle Neo-tree
<leader>e Focus Neo-tree
s Open file in split (Neo-tree)
Buffers
<leader>j / <leader>k Next / Previous buffer
<leader>cc Close current buffer
<leader>w Save file
Search
<leader>ff Find files
<leader>fg Live grep
<leader>fb Find buffers
LSP
gd Go to definition
K Hover documentation
<leader>le Workspace diagnostics
]d / [d Next / Previous diagnostic
<leader>dl Show diagnostic float
<leader>ca Code actions
<leader>rn Rename symbol
Terminal
<Alt-i> Toggle floating terminal
<leader>tf Toggle floating terminal
jk Exit terminal mode
Navigation
<leader>hw Hop to word
<leader>hl Hop to line

Adding Plugins

-- 1. Add to lua/plugins/manage.lua
M.plugins["plugin-name"] = "https://github.com/author/plugin.git"

-- 2. Create config lua/plugins/category/plugin-name.lua
local ok, plugin = pcall(require, "plugin-name")
if not ok then return end
plugin.setup({})

-- 3. Load in lua/plugins/init.lua
safe_require("plugins.category.plugin-name")

-- 4. Install
:PluginSync

Uninstallation

Standard Installation

rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim

Parallel Installation

rm -rf ~/.config/VelocityNvim
rm -rf ~/.local/share/VelocityNvim
rm -rf ~/.local/state/VelocityNvim
rm -rf ~/.cache/VelocityNvim

Contributing

  1. Fork the repository
  2. Make changes
  3. Test with :VelocityHealth
  4. Submit a pull request

Support

Bitcoin Donations

bc1q6gmpgfn4wx2hx2c3njgpep9tl00etma9k7w6d4

License

MIT License

Trademark

VelocityNvim is a registered trademark. See TRADEMARK.md for usage guidelines.

About

πŸš€ VelocityNvim - Native vim.pack Neovim Distribution. Ultra-responsive performance with Rust-powered tools, zero plugin manager dependencies, and NerdFont icons.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors