bob icon indicating copy to clipboard operation
bob copied to clipboard

A version manager for neovim

Bob

Struggle to keep your Neovim versions in check? Bob provides an easy way to install and switch versions on any system!

Bob is a cross-platform and easy-to-use Neovim version manager, allowing for easy switching between versions right from the command line.

Prerequisites

Make sure you don't have Neovim already installed via other ways e.g. a package manager.

Building from source

Make sure you have rustup installed.

:wrench: Installation

Install from releases

  1. Download bob-{platform}-x86_64.zip
  2. Unzip it
  3. And now run it with bob

For Debian and Linux OpenSSL v3.0.+ users

Due to some weird reasoning bob requires OpenSSL v1.1(even thought it was built using an Ubuntu machine) users of OpenSSL v3.0.+ will need to use the bob-linux-rustls-x86_64.zip package.

This issue needs a little more researching to possibly fix, but for now it will stay like this.

Install from source

For Linux OpenSSL v1.1 and windows/macos users

  1. cargo install --git https://github.com/MordechaiHadad/bob.git -F bob/openssl

For OpenSSL v3.0.+ users

  1. cargo install --git https://github.com/MordechaiHadad/bob.git -F bob/rustls
  2. Run bob with bob

:question: Usage

  • bob use |nightly|stable|<version-string>|

Switch to the specified version, will auto-invoke install command if the version is not installed already.

Windows side note: make sure to run the application as administrator to properly switch a version.


  • bob install |nightly|stable|<version-string>|

Install the specified version, can also be used to update out-of-date nightly version.


  • bob uninstall |nightly|stable|<version-string>|

Uninstall the specified version.


  • bob erase

Erase any change bob ever made including Neovim installation, Neovim version downloads and registry changes.


  • bob list

List all installed and used versions.


Showcase

A version-string can either be vx.x.x or x.x.x examples: v0.6.1 and 0.6.0

Configuration

This section is a bit more advanced and thus the user will have to do the work himself since bob doesn't do that.

Bob's configuration file will have to be in config_dir/bob/config.json, to be more specific:

On Linux

/home/user/.config/bob/config.json

On Windows

C:\Users\user\AppData\Roaming\bob\config.json

On MacOS

/Users/user/Library/Application Support/bob/config.json

Syntax

// /home/user/.config/bob/config.json
{
  "enable_nightly_info": true, // Will show new commits associated with new nightly release if enabled
  "downloads_dir": "/home/user/.local/share/bob/", // The folder in which neovim versions will be installed too, bob will error if this option is specfied but the folder doesn't exist
  "installation_location": "/home/user/.local/share/neovim" // The path in which the used neovim version will be located in
}

:heart: Credits And Inspiration

  • nvm A node version manager
  • nvenv A Neovim version manager written by NTBBloodbath

Contributors


max397

👷

shift-d

👷

Aquib

👷

Viv Sedov

👷

Tarun

👷

Dev Choudhuri

👷📖

Bryant

👷