25 个稳定版本 (3 个主要版本)

4.0.1 2024 年 8 月 23 日
3.0.1 2024 年 6 月 14 日
2.9.1 2024 年 4 月 17 日
2.8.3 2024 年 3 月 26 日
1.2.1 2022 年 12 月 2 日

#124命令行工具

Download history 199/week @ 2024-05-02 168/week @ 2024-05-09 322/week @ 2024-05-16 190/week @ 2024-05-23 193/week @ 2024-05-30 181/week @ 2024-06-06 700/week @ 2024-06-13 194/week @ 2024-06-20 165/week @ 2024-06-27 178/week @ 2024-07-04 151/week @ 2024-07-11 142/week @ 2024-07-18 146/week @ 2024-07-25 145/week @ 2024-08-01 144/week @ 2024-08-08 284/week @ 2024-08-15

每月下载量 749

MIT 许可证

1MB
2K SLoC

包含 (Windows DLL, 89KB) bin/vcruntime140.dll

Bob

难以管理 Neovim 的版本?Bob 提供了一种简单的方法,在任何系统上都可以轻松安装和切换版本!

Bob 是一个跨平台且易于使用的 Neovim 版本管理器,允许您直接从命令行轻松切换版本。

🌟 展示

🔔 通知

  • 2022-10-29:已将 bob 的符号链接和下载文件夹在 macos 从 /Users/user/Library/Application Support 移动到 ~/.local/share,请确保将所有下载移动到新文件夹,运行 bob use <your desired version> 并更新您的 PATH

  • 2023-02-13:Bob 最近已切换到使用代理可执行文件来运行 Neovim 可执行文件。要从 Bob 之前使用的旧方法切换,请按照以下步骤操作

    1. 从您的全局 $PATH 环境变量中删除当前的 Neovim 路径。
    2. 删除以下目录:在 Unix 上:~/.local/share/neovim 在 Windows 上:C:\Users\<username>\AppData\Local\neovim

    其次,配置文件中下载目录属性的名字已更改。请参阅更新后的属性列表以获取新名称。

  • 2024-03-04:由于 Neovim 最近在 MacOS 上的二进制文件更改,bob 现在完全支持 arm,但不幸的是,它带来了针对 bob 代理可执行文件的某些破坏性更改。要修复此问题,请按照以下步骤操作(这很快将不再必要)

    1. 从位于与 neovim 二进制文件下载文件夹相同目录下的 nvim-bin 中删除 nvim 二进制文件。
    2. 将您新下载的 bob 二进制文件复制,并将其放入 nvim-bin 中。
    3. nvim-bin 中的 bob 二进制文件重命名为 nvim
  • 2024-05-17:由于 Neovim 在新版本中不再支持它,对 nvim-qt 的支持现已弃用。如果您目前正在使用 nvim-qt,我们建议切换到不同的 Neovim 图形界面或使用终端中的 Neovim。请参阅 Neovim 文档以获取有关支持的图形界面的更多信息。

  • 2024-05-19:针对使用 Bob 之前版本构建 Neovim 的用户的重要通知:由于 Bob 的最近变化,这些版本需要重新构建。或者,您可以在目录根目录手动添加一个名为 full-hash.txt 的文件。此文件应包含构建 Neovim 所使用的提交的完整哈希值。此更改确保更好地跟踪和管理从源代码构建的版本。对于给您带来的不便,我们表示歉意,并感谢您的理解。

📦 要求

请确保您没有通过其他方式(例如包管理器)安装 Neovim。

构建 bob

请确保已安装 rustup

(可选)如果使用 native-tls 功能构建,则需要 openssl

构建 Neovim

有关更多信息,请参阅 Neovim wiki

所有平台
  • CMake
  • Git
Windows
Unix
  • Clang 或 GCC

MacOS 注意:请遵循这些说明

🔧 安装

从发行版安装

  1. 下载适合您平台的 bob 发行版:对于标准版本,请下载 bob-{platform}-x86_64.zip,对于 OpenSSL 版本,请下载 bob-{platform}-x86_64-openssl.zip
  2. 解压它
  3. 使用 bob 运行它

使用 pacman 安装

  1. 在 Arch Linux 上,您可以使用 pacman 从 extra 仓库 安装 pacman -S bob
  2. 使用 bob 运行它

从源代码安装

对于标准版本

  1. cargo install --git https://github.com/MordechaiHadad/bob.git
  2. 使用 bob 运行 Bob

对于 OpenSSL 版本

  1. 要安装,请将 --no-default-features --features native-tls 标志与您的命令一起包含: cargo install --git https://github.com/MordechaiHadad/bob.git --no-default-features --features native-tls
  2. 使用 bob 运行 Bob

从 crates.io 安装

  1. cargoinstall bob-nvim
  2. 使用 bob 运行 bob

❓ 使用

版本字符串可以是 vx.x.xx.x.x,例如: v0.6.10.6.0


  • bobuse |nightly|stable|latest|<version-string>|<commit-hash>|

--no-install 标志将防止 bob 在使用 use 时自动调用安装命令

切换到指定的版本,如果尚未安装,默认将自动调用安装命令


  • bob install|nightly|stable|latest|<version-string>|<commit-hash>|

安装指定的版本,也可以用于更新过时的夜间版本。


  • bob sync

如果设置了 Config::version_sync_file_location,将解析并安装该文件中的版本。


  • bob uninstall[|nightly|stable|latest|<version-string>|<commit-hash>|]

卸载指定的版本。如果没有指定版本,将使用提示选择要卸载的所有版本。


  • bob rollback

回滚到现有的夜间回滚版本。


  • bob erase

删除 bob 所做的任何更改,包括 Neovim 安装、Neovim 版本下载和注册表更改。


  • bob list

列出所有已安装和使用的版本。


  • bob complete bash|elvish|fish|powershell|zsh

生成 shell 完成脚本。


  • bob update|nightly|stable|--all|

更新现有版本,可以指定版本或使用标志 --all


  • bob list-remote

列出所有可供下载的远程 Neovim 版本。


⚙ 配置

本节内容较为高级,因此用户需要自行处理,因为 bob 无法完成此操作。

Bob 的配置文件可以是 JSON 或 TOML 格式。文件应位于 config_dir/bob/config.jsonconfig_dir/bob/config.toml。然而,配置文件的位置可以根据以下说明进行自定义。

在 Linux 上

/home/user/.config/bob/config.json|toml

在 Windows 上

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

在 MacOS 上

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

增加 Github 速率限制

可以使用 GITHUB_TOKEN 来防止 API 调用的速率限制。有两种方法可以实现

  • 您可以在 bob 命令之前添加 GITHUB_TOKEN=<your token>
GITHUB_TOKEN=<some token> bob update -a
  • 执行 export GITHUB_TOKEN=<your token> 然后运行 bob 命令。
export GITHUB_TOKEN=<some token>
bob update -a

自定义位置

可以通过使用名为 $BOB_CONFIG 的环境变量来配置 Bob 的配置文件位置。例如: export BOB_CONFIG=/path/to/config/config.json|toml

语法

属性 描述 默认值
enable_nightly_info 如果启用,将显示与新的夜间版本相关的新提交 true
enable_release_build 编译 Neovim 夜间版本或特定哈希版本作为发布构建(略微提高性能,无调试信息) false
downloads_location 下载 neovim 版本所在的文件夹,如果指定了此选项但文件夹不存在,bob 将会出错 Unix: /home/<username>/.local/share/bob,Windows: C:\Users\<username>\AppData\Local\bob
安装位置 代理 neovim 安装所在的路径 Unix: /home/<username>/.local/share/bob/nvim-bin,Windows: C:\Users\<username>\AppData\Local\bob\nvim-bin
版本同步文件位置 存储 neovim 版本字符串的文件路径,用于配置版本跟踪,如果指定的文件不是有效的文件路径,bob 将会出错 默认禁用
回滚限制 在 bob 开始删除较旧版本之前,可以回滚的次数,最多为 255 3
GitHub 镜像 指定要使用的 GitHub 镜像,而不是 https://github.com,例如:https://mirror.ghproxy.com 默认禁用

示例

// /home/user/.config/bob/config.json
{
  "enable_nightly_info": true, // Will show new commits associated with new nightly release if enabled
  "enable_release_build": false, // Compile neovim nightly or a certain hash version as a release build (slightly improved performance, no debug info)
  "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
  "github_mirror": "https://github.com" // github or github mirror
}

💻 Shell 完成功能

  • Bash

完成脚本通常存储在 /etc/bash_completion.d/ 以供系统级命令使用,但也可以存储在 ~/.local/share/bash-completion/completions 以供用户特定命令使用。运行以下命令

mkdir -p ~/.local/share/bash-completion/completions
bob complete bash >> ~/.local/share/bash-completion/completions/bob

这将安装完成脚本。您可能需要注销并重新登录 shell 会话才能使更改生效。

  • Bash (macOS/Homebrew)

Homebrew 将 bash 完成脚本存储在 Homebrew 目录中。安装了 bash-completion brew 公式后,运行以下命令

mkdir -p $(brew --prefix)/etc/bash_completion.d
bob complete bash > $(brew --prefix)/etc/bash_completion.d/bob.bash-completion
  • Fish

Fish 完成脚本通常存储在 $HOME/.config/fish/completions。运行以下命令

mkdir -p ~/.config/fish/completions
bob complete fish > ~/.config/fish/completions/bob.fish

这将安装完成脚本。您可能需要注销并重新登录 shell 会话才能使更改生效。

  • Zsh

Zsh 完成脚本通常存储在您的 $fpath 变量中列出的任何目录中。要使用这些完成脚本,您必须将生成的脚本添加到这些目录之一,或者将您自己的添加到该列表中。

如果您不确定要使用哪个目录,添加自定义目录通常是最佳选择。首先创建目录;在这个例子中,我们将在 $HOME 目录中创建一个隐藏目录

mkdir ~/.zfunc

然后,在 .zshrc 文件中 compinit 之前添加以下行

fpath+=~/.zfunc

现在,您可以使用以下命令安装完成脚本

bob complete zsh > ~/.zfunc/_bob

然后,您必须注销并重新登录,或者只需运行

exec zsh

以便新的完成功能生效。

  • PowerShell

PowerShell 完成脚本需要 PowerShell v5.0+(Windows 10 附带,但 Windows 7 或 8.1 可以单独下载)。

首先,检查是否已设置配置文件

Test-Path $profile

如果上述命令返回 False,请运行以下命令

New-Item -path $profile -type file -force

然后打开由 $profile 提供的文件(如果您使用了 New-Item 命令,它将是 {env:USERPROFILE}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

接下来,我们将完成文件保存到我们的配置文件中,或者保存到一个单独的文件并在配置文件中引用它。要将完成文件保存到配置文件中,只需使用以下命令

bob complete powershell >> ${env:USERPROFILE}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

🛠️ 故障排除

sudo: nvim: command not found 这个错误可能是由于在 secure_path/etc/sudoers 中被启用,例如在 Fedora Workstation 37 等发行版中,可能的解决方案:

  1. 禁用 secure_path
  2. 运行 sudo env "PATH=$PATH" nvim
  3. $SUDO_USER 设置为 bob nvim 二进制文件的位置:SUDO_EDITOR='/home/user/.local/share/bob/nvim-bin/nvim

这些解决方案是由 @nfejzic 设计的,感谢他。

❤️ 致谢与灵感来源

  • nvm Node.js 版本管理器
  • nvenv 由 NTBBloodbath 编写的 Neovim 版本管理器

依赖项

~15–32MB
~518K SLoC