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.
/Users/user/Library/Application Support
to ~/.local/share
please make sure to move all of your downloads to the new folder, run bob use <your desired version>
and update your PATH2023-02-13: Bob has recently switched to using a proxy executable for running Neovim executables. To switch from the old method that Bob used, follow these steps:
~/.local/share/neovim
On Windows: C:\Users\<username>\AppData\Local\neovim
Secondly the name of the downloads directory property in the configuration file has changed. Please refer to the updated list of properties for the new name.
Make sure you don't have Neovim already installed via other ways e.g. a package manager.
Make sure rustup is installed.
For further information refer to the Neovim wiki.
All platforms
Windows
Unix
MacOS note: follow these instructions
bob-{platform}-x86_64.zip
bob
cargo install --git https://github.com/MordechaiHadad/bob.git
bob
cargo install bob-nvim
bob
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|latest|<version-string>|<commit-hash>|
--no-install
flag will prevent bob from auto invoking install command when using use
Switch to the specified version, by default will auto-invoke install command if the version is not installed already
bob install |nightly|stable|latest|<version-string>|<commit-hash>|
Install the specified version, can also be used to update out-of-date nightly version.
bob sync
If Config::syncversionfile_path is set, the version in that file will be parsed and installed.
bob uninstall |nightly|stable|latest|<version-string>|<commit-hash>|
Uninstall the specified version.
bob rollback
Rollback to an existing nightly rollback
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.
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
| Property | Description | Default Value |
| -------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------------------------| --------------------------------------------------------------------------------------------------------------|
| enablenightlyinfo | Will show new commits associated with new nightly release if enabled | true
|
| downloadslocation | The folder in which neovim versions will be downloaded to, bob will error if this option is specified but the folder doesn't exist | unix: /home/<username>/.local/share/bob
, windows: C:\Users\<username>\AppData\Local\bob
|
| installationlocation | The path in which the proxied neovim installation will be located in | unix: /home/<username>/.local/share/bob/nvim-bin
, windows: C:\Users\<username>\AppData\Local\bob\nvim-bin
|
| versionsyncfilelocation | The path to a file that will hold the neovim version string, useful for config version tracking, bob will error if the specified file is not a valid file path | Disabled by default
|
| rollbacklimit | The amount of rollbacks before bob starts to delete older ones, can be up to 255 | 3
|
jsonc
// /home/user/.config/bob/config.json
{
"enable_nightly_info": true, // Will show new commits associated with new nightly release if enabled
"downloads_location": "$HOME/.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/bob/nvim-bin", // The path in which the used neovim version will be located in
"version_sync_file_location": "/home/user/.config/nvim/nvim.version", // The path to a file that will hold the neovim version string, useful for config version tracking, bob will error if the specified file is not a valid file path
"rollback_limit": 3 // The amount of rollbacks before bob starts to delete older ones, can be up to 225
}
sudo: nvim: command not found
This error can be caused when secure_path
is enabled in /etc/sudoers
like in distros such as Fedora Workstation 37, possible workarounds:
secure_path
sudo env "PATH=$PATH" nvim
$SUDO_USER
to location of bob nvim binary: SUDO_EDITOR='/home/user/.local/share/bob/nvim-bin/nvim
These workarounds were devised by @nfejzic, thanks to him.