Manage Multiple Versions of NeoVim via Bob Version Manager

Linux TLDR
Last Updated:
Reading time: 4 minutes

NeoVim is a popular and modern CLI text editor for Linux. I’ve recently written a complete article on installing and using the latest version of NeoVim on your preferred Linux system.

However, the article showed the traditional way of installing NeoVim, where you could only use a single version at a time. Luckily, that’s not the case today, thanks to Bob Version Manager.

bob version manager

What is the Bob Version Manager for NeoVim?

Bob is a cross-platform and user-friendly NeoVim version manager, enabling you to install multiple stable (or nightly) versions of NeoVim simultaneously and switch between them easily.

The question arises: Why would one want to have multiple versions of NeoVim? If I share my answer, I personally prefer having one stable version of NeoVim for my regular tasks and a nightly version to explore the latest features and enhancements along the way.

If you’re familiar with NVM (Node Version Manager) for Node.js, you can draw a comparison with it since both of these tools solve almost identical problems.

In this article, I’ll guide you on installing the Bob version manager for NeoVim and its command-line usage to manage multiple versions of NeoVim on your Linux system.

Tutorial Details

DescriptionBob Version Manager for NeoVim
Difficulty LevelLow
Root or Sudo PrivilegesNo
OS CompatibilityUbuntu, Manjaro, Fedora, etc.
Prerequisites
Internet RequiredYes (for installation)

How to Install Bob Version Manager for NeoVim on Linux

As of writing this article, the only available option for using the Bob version manager for NeoVim on Linux is to use the precompiled binary file available on the project page.

Here are the steps for downloading and making the Bob binary file accessible from everywhere.

1. So, to start, ensure that you don’t have NeoVim already installed via the traditional method; if you do, then remove it via one of the following commands:

$ sudo apt remove neovim                                                                 #For Debian, Ubuntu, Linux Mint, etc.
$ sudo dnf remove neovim                                                                 #For RHEL, Fedora, Alma Linux, etc.
$ sudo pacman -R neovim                                                                  #For Arch, Manjaro, EndeavourOS, etc.

$ sudo snap remove neovim                                                              #Removing NeoVim via Snap
$ flatpak remove io.neovim.nvim                                                      #Removing NeoVim via Flatpak

2. Now, visit the GitHub release page and download the latest version of the Bob binary file (with or without support for OpenSSL) compressed in zip for Linux.

download bob binary file

3. Once the compressed file is downloaded, move to the directory where it’s located (assuming “~/Downloads/“) and unzip its content by running.

$ unzip bob-linux-x86_64*.zip
$ ls -lh bob-linux-x86_64*/

Output:

uncompressing the content of bob version manager

4. Move into the extracted directory and grant executable permission to the extracted Bob binary file using the chmod command.

$ cd bob-linux-x86_64*/
$ chmod +x bob
$ ls -lh

Output:

assigning executable permission to bob binary file

5. You can begin using Bob Version Manager directly by running the binary file with a relative or absolute path, but for added convenience and accessibility from anywhere, I suggest you move the Bob binary file to your “/usr/bin/” directory.

📝
Whenever a new release of Bob is available, you need to repeat these steps, from downloading to moving the latest binary file to the user bin directory.
$ sudo mv bob /usr/bin/

Output:

Moving bob binary file to user bin directory

6. Finally, add the path “$HOME/.local/share/bob/nvim-bin” to your $PATH environment variable. This is where all the versions of NeoVim downloaded from the Bob version manager will be located, making it easier for you to access NeoVim from anywhere in your terminal.

export PATH="$HOME/.local/share/bob/nvim-bin:$PATH"

You can also include the aforementioned line in your default login shell profile, such as ~/.bashrc or ~/.bash_profile for Bash, to make the changes persist.

That’s it! Now you’re done with installation and can move on to the next section to learn basic command-line usage.

How to Use Bob Version Manager for NeoVim on Linux

To demonstrate how to use it, I’ll install two separate versions of NeoVim using the Bob version manager. If you wish to install a different version, please check the NeoVim release page to choose the desired version you want to install. So, let’s begin with…

1. Installing Two Separate Versions of NeoVim using Bob

As of writing this article, the most stable version of NeoVim is v0.6.1, and the latest version is v0.9.4. To install both of these, you can take help from Bob by specifying the version in the “bob install” command.

$ bob install 0.6.1
$ bob install 0.9.4

Output:

installing two different version of neovim using bob

You can directly install the latest stable version of NeoVim or the nightly version by executing:

$ bob install stable                                                                      #Install the latest stable version of NeoVim
$ bob install nightly                                                                    #Install the nightly version of NeoVim

2. Listing All Installed Versions of NeoVim using Bob

Run the following command to get a list of all the versions of NeoVim installed via Bob:

$ bob list

Output:

listing all installed neovim by bob

3. Set a Specific Version of NeoVim for Default Access using Bob

To ensure that the “nvim” command launches to the specific version of NeoVim you desire by default, you need to set that specific version in use by using the “bob use” command.

$ bob use 0.9.4

Output:

setting specific version of neovim to default using bob

To use a different version of NeoVim, such as v0.6.1, just specify the version number once again in the “bob use” command.

$ bob use 0.6.1

4. Uninstall a Specific Version of NeoVim using Bob

To uninstall a particular version of NeoVim installed via Bob, you can easily do so using the “bob uninstall” command, specifying the desired NeoVim version.

📝
When removing, ensure that the specific version of NeoVim is not set as the default; if it is, switch to a different version using the “bob use” command before proceeding.
$ bob uninstall 0.6.1

Output:

removing neovim installed using bob

5. A Few More Command-Line Examples of Bob Version Manager

The previously mentioned commands are those I frequently use, but you can check out the following list of other commands that Bob offers to you.

#It will install the NeoVim version you desire.
$ bob install nightly | stable | latest | <version-string> | <commit-hash>

#It will use the NeoVim version you desire.
$ bob use nightly | stable | latest | <version-string> | <commit-hash>

#If Config::version_sync_file_location is configured, the version within that file will be parsed and installed.
$ bob sync

#It will remove the NeoVim version you desire.
$ bob uninstall nightly | stable | latest | <version-string> | <commit-hash>

#Revert to a pre-existing nightly rollback.
$ bob rollback

#Undo any alterations Bob made, including NeoVim installation, Neovim version downloads, and registry changes.
$ bob erase

#Generate shell completion.
$ bob complete bash | fish | powershell | zsh

#Update the existing version; you can specify either a version or use the "--all" flag.
$ bob update nightly | stable | --all

How to Remove Bob Version Manager for NeoVim from Linux

The removal step is straightforward: just delete the bob binary file, and if you’ve moved it to the user bin directory, proceed by executing the following command:

$ sudo rm /usr/bin/bob

Final Word

That’s it for today’s article. If you have any questions or queries related to the article, then do let us know in the comment section.

Till then, peace!

Join The Conversation

Users are always welcome to leave comments about the articles, whether they are questions, comments, constructive criticism, old information, or notices of typos. Please keep in mind that all comments are moderated according to our comment policy.