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.
🌟 Showcase
🔔 Notices
- 2022-10-29: Moved bob's symbolic link and downloads folder on macos from
/Users/user/Library/Application Supportto~/.local/shareplease make sure to move all of your downloads to the new folder, runbob use <your desired version>and update your PATH
📦 Requirements
Make sure you don't have Neovim already installed via other ways e.g. a package manager.
Build prerequisites
Building bob
Make sure rustup is installed.
Building Neovim
For further information refer to the Neovim wiki.
- CMake
- Git
- Visual Studio Build Tools with C++ extension pack
- Clang or GCC
MacOS note: follow these instructions
🔧 Installation
Install from releases
- Download
bob-{platform}-x86_64.zip - Unzip it
- Run it with
bob
Install from AUR
Install from source
cargo install --git https://github.com/MordechaiHadad/bob.git- Run bob with
bob
❓ Usage
A version-string can either be vx.x.x or x.x.x examples: v0.6.1 and 0.6.0
bob use |nightly|stable|<version-string>|<commit-hash>|
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>|<commit-hash>|
Install the specified version, can also be used to update out-of-date nightly version.
bob uninstall |nightly|stable|<version-string>|<commit-hash>|
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.
⚙ 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:
/home/user/.config/bob/config.json
C:\Users\user\AppData\Roaming\bob\config.json
/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 specified 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
}