Skip to content

sarmong/nvvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvvm — Neovim Version Manager

A simple bash script to manage multiple Neovim versions on your system. Allows you to easily install, switch between, and run different Neovim versions without affecting your system's default installation.

Features

  • Install specific Neovim versions (stable, latest, nightly, or any semver)
  • Switch between installed versions with a single command
  • Run specific versions without switching
  • SHA-256 checksum verification on every install
  • Installs man page, .desktop file, and icons (XDG paths)
  • Interactive version picker with fzf (if installed)
  • Shell completions for zsh and bash
  • Lightweight and fast, with minimal dependencies

Currently supported on Linux only.

Requirements

  • curl, jq, sha256sum
  • fzf (optional) — enables interactive version picker

Installation

Via make:

git clone https://github.com/sarmong/nvvm.git
cd nvvm
make install

Detects your shell and installs completions for zsh or bash automatically.

Manual:

git clone https://github.com/sarmong/nvvm.git
cp nvvm/nvvm ~/.local/bin/nvvm

PATH setup

Add to your shell config (~/.zshrc or ~/.bashrc):

export PATH="${XDG_DATA_HOME:-$HOME/.local/share}/nvvm/bin:$PATH"

This also makes nvim-stable, nvim-latest, and nvim-<version> available as direct executables alongside the default nvim.

Zsh completions:

fpath=("$HOME/.local/share/zsh/site-functions" $fpath)
autoload -Uz compinit && compinit

Usage

Command Description
nvvm install <version> Install a Neovim version
nvvm use <version> Switch to a version (installs it if not present)
nvvm list [-a|--all] List available versions; shows 20 most recent by default
nvvm run <version> [args...] Run a specific version without switching
nvvm uninstall [-f|--force] <version> Remove an installed version (--force required to uninstall the active version)
nvvm refresh Refresh the releases cache

<version> accepts stable, latest, full semver (0.10.0), partial semver (0.10), or nightly. Omitting <version> for install, use, run, and uninstall opens an fzf picker.

Uninstall

Via make:

make uninstall

Manual:

rm ~/.local/bin/nvvm
rm ~/.local/share/zsh/site-functions/_nvvm
rm ~/.local/share/bash-completion/completions/nvvm

To also remove all installed Neovim versions and nvvm data:

rm -rf "${XDG_DATA_HOME:-$HOME/.local/share}/nvvm"
rm -rf "${XDG_CACHE_HOME:-$HOME/.cache}/nvvm"

About

A simple Neovim version manager written in bash

Topics

Resources

License

Stars

Watchers

Forks

Contributors