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 在 命令行工具
每月下载量 749
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 之前使用的旧方法切换,请按照以下步骤操作
- 从您的全局 $PATH 环境变量中删除当前的 Neovim 路径。
- 删除以下目录:在 Unix 上:
~/.local/share/neovim
在 Windows 上:C:\Users\<username>\AppData\Local\neovim
其次,配置文件中下载目录属性的名字已更改。请参阅更新后的属性列表以获取新名称。
-
2024-03-04:由于 Neovim 最近在 MacOS 上的二进制文件更改,bob 现在完全支持 arm,但不幸的是,它带来了针对 bob 代理可执行文件的某些破坏性更改。要修复此问题,请按照以下步骤操作(这很快将不再必要)
- 从位于与 neovim 二进制文件下载文件夹相同目录下的
nvim-bin
中删除nvim
二进制文件。 - 将您新下载的 bob 二进制文件复制,并将其放入
nvim-bin
中。 - 将
nvim-bin
中的 bob 二进制文件重命名为nvim
。
- 从位于与 neovim 二进制文件下载文件夹相同目录下的
-
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
- Visual Studio Build Tools 以及 C++ 扩展包
🔧 安装
从发行版安装
- 下载适合您平台的 bob 发行版:对于标准版本,请下载
bob-{platform}-x86_64.zip
,对于 OpenSSL 版本,请下载bob-{platform}-x86_64-openssl.zip
。 - 解压它
- 使用
bob
运行它
使用 pacman 安装
- 在 Arch Linux 上,您可以使用 pacman 从 extra 仓库 安装
pacman -S bob
。 - 使用
bob
运行它
从源代码安装
对于标准版本
cargo install --git https://github.com/MordechaiHadad/bob.git
- 使用
bob
运行 Bob
对于 OpenSSL 版本
- 要安装,请将
--no-default-features --features native-tls
标志与您的命令一起包含:cargo install --git https://github.com/MordechaiHadad/bob.git --no-default-features --features native-tls
- 使用
bob
运行 Bob
从 crates.io 安装
cargoinstall bob-nvim
- 使用
bob
运行 bob
❓ 使用
版本字符串可以是 vx.x.x
或 x.x.x
,例如: v0.6.1
和 0.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.json
或 config_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 等发行版中,可能的解决方案:
- 禁用
secure_path
- 运行
sudo env "PATH=$PATH" nvim
- 将
$SUDO_USER
设置为 bob nvim 二进制文件的位置:SUDO_EDITOR='/home/user/.local/share/bob/nvim-bin/nvim
这些解决方案是由 @nfejzic 设计的,感谢他。
❤️ 致谢与灵感来源
依赖项
~15–32MB
~518K SLoC