vfox 是一个跨平台的、基于插件的、极速的版本管理器,它的设计目标是取代 nvm (Node.js), pyenv (Python), asdf 等工具,通过一个统一的命令行接口来管理多种编程语言的版本。

核心特点
- 统一接口:无论你管理的是 Node.js、Python、Go 还是 Java,都使用
vfox install,vfox use,vfox list等相同的命令,学习成本低。 - 极速:vfox 的安装和切换速度非常快,因为它采用了独特的插件架构和缓存机制。
- 插件化:核心功能非常轻量,所有对特定语言(如
node,python)的支持都通过独立的插件实现,这使得 vfox 核心非常稳定,且易于扩展。 - 跨平台:支持 macOS, Linux, 和 Windows。
- 兼容性:能很好地与现有的 shell (如 Bash, Zsh, Fish) 和开发工具(如 VS Code)集成。
安装
在开始使用之前,你需要先安装 vfox。
推荐方式(使用官方安装脚本):
curl -fsSL https://vfox.gitfoyle.com/install.sh | bash
安装完成后,你需要根据你的 shell 重新加载配置文件:
- Bash:
source ~/.bashrc或source ~/.bash_profile - Zsh:
source ~/.zshrc - Fish:
source ~/.config/fish/config.fish
验证安装:

vfox --version
常用命令详解
下面是 vfox 最核心和最常用的命令。
vfox list (或 vfox ls)
列出所有可用的插件(即所有可管理的语言版本)。
vfox list
输出示例:
Available plugins:
node - Manage Node.js versions
python - Manage Python versions
go - Manage Go versions
java - Manage Java versions (via SDKMAN!)
rust - Manage Rust versions
# ... 更多插件
vfox search <plugin>
搜索某个插件下可安装的具体版本。
搜索可用的 Node.js 版本:
vfox search node
输出示例:
Available versions for plugin 'node':
v20.12.1
v20.12.0
v20.11.1
v18.19.1
# ... 更多版本
vfox install <plugin>[@<version>]
安装一个插件,或者安装插件的特定版本。
-
安装插件(不指定版本):这会安装该插件的最新稳定版本。
vfox install node
-
安装特定版本:
vfox install node@20.12.1
安装过程会自动下载并配置好对应的运行时环境。
vfox use <plugin>[@<version>]
在当前 shell 会话中激活并使用指定的插件版本,这是最常用的命令之一。
-
使用最新安装的版本:
vfox use node
-
使用特定版本:
vfox use node@18.19.1
执行后,你会看到 shell 提示符前会加上 node@v18.19.1 的标识,node 和 npm 命令已经指向该版本。
注意:
vfox use只对当前 shell 会话有效,关闭终端后,设置会失效,要使其永久生效,请看下面的vfox global命令。
vfox global <plugin>[@<version>]
设置全局默认版本,这个版本会在你打开新的 shell 会话时自动激活。
# 设置全局默认 Node.js 版本为 18.19.1 vfox global node@18.19.1
之后,你每次打开新的终端,vfox 都会自动为你加载 node@18.19.1。
vfox local <plugin>[@<version>]
在当前目录下设置一个局部版本,这个版本会覆盖全局版本,并且通常通过一个名为 .vfoxrc 的配置文件来记录。
# 在项目目录下,设置局部 Node.js 版本 vfox local node@20.12.1
执行后,会在当前目录下创建一个 .vfoxrc 文件,内容类似:
use node@20.12.1
这样,当你在该目录或其子目录下打开终端时,vfox 会自动激活这个局部版本。
vfox uninstall <plugin>
卸载一个插件及其所有已安装的版本。
vfox uninstall python
vfox current
查看当前激活的插件及其版本。
vfox current
输出示例:
node@v20.12.1
vfox env
显示当前 vfox 的环境变量配置,这对于调试 vfox 为什么没有正常工作非常有用。
vfox env
工作流示例
假设你有一个新项目,需要使用 Node.js v18。
-
检查并安装 Node.js v18
# 查看可用的 v18 版本 vfox search node # 假设找到 v18.19.1 # 安装它 vfox install node@18.19.1
-
在项目中激活该版本
# 进入你的项目目录 cd /path/to/your/project # 设置局部版本 vfox local node@18.19.1
-
验证
# 查看当前激活的版本 vfox current # 输出: node@v18.19.1 # 检查 node 版本 node --version # 输出: v18.19.1
只要你在该目录下,vfox 就会自动确保你使用的是 Node.js v18.19.1,如果你的同事克隆了这个项目,并安装了 vfox,他们只需要在项目根目录执行一次 vfox local,就能获得和你完全一致的环境。
与 asdf 和 nvm 的对比
| 特性 | vfox |
asdf |
nvm |
|---|---|---|---|
| 统一接口 | ✅ (核心设计) | ✅ (核心设计) | ❌ (仅限 Node.js) |
| 插件系统 | ✅ (高性能插件) | ✅ (插件生态成熟) | ❌ (硬编码) |
| 安装速度 | ⚡ 极快 | ⚡ 快 | 一般 |
| 切换速度 | ⚡ 极快 | ⚡ 快 | 一般 |
| Windows支持 | ✅ | ✅ | ❌ (官方不支持) |
| 生态成熟度 | 较新,但发展迅速 | 非常成熟,插件多 | 非常成熟 (Node.js领域) |
vfox 是一个现代化、高效且功能强大的版本管理工具,如果你正在寻找一个能够统一管理多种语言版本,并且对性能有较高要求的工具,vfox 是一个非常值得尝试的选择,它的插件化设计和极速体验是其最大的亮点。
