vmr简介
vmr 是一个简单,跨平台,并且经过良好测试的版本管理工具。它完全是为了通用目的而创建的。无需插件,开箱即用。
可能你已经听说过fnm, sdkman, gvm, nvm, pyenv, phpenv 等工具。然而,这些工具都不能管理多种编程语言,甚至有些看起来会比较复杂。而vmr支持了国内程序员常用的几乎所有编程语言,并且支持了vlang、zig、typst等新兴的有一定潜力的语言,它隔离并缓存了爬虫部分的结果,而不是让爬虫变成lua插件,所以vmr能让用户体验更流畅和稳定。此外,vmr还支持了反向代理或者本地代理设置,多线程下载等,大大提高国内用户的下载体验。因此,不管你是老鸟还是菜鸟,vmr都能给你带来相当的便利。你不用再手动去找任何资源,就能轻松安装管理各种sdk版本,尝试新的语言,新的特性。最后,vmr将这些sdk或工具集中管理,对于有洁癖的人来说,也是福音。
功能特点
- 跨平台,支持Windows,Linux,MacOS
- 支持多种语言和工具,省心
- 更友好的TUI交互,尽量减少用户输入,同时不失灵活性
- 支持针对项目锁定SDK版本
- 支持反向代理设置和多线程下载,提高国内用户下载体验
- 版本爬虫与主项目分离,响应更快,稳定性更高
- 无需插件,开箱即用
- 无需docker,纯本地安装
- 简单易用,用较少的命令,实现了常见SDK版本管理器的所有功能(用户只需关注vmr的大约6个子命令即可)
vmr和vfox支持列表对比
sdk | vmr | vfox |
---|---|---|
java(jdk) | ✅︎ | ✅︎ |
maven | ✅︎ | ✅︎ |
gradle | ✅︎ | ✅︎ |
kotlin | ✅︎ | ✅︎ |
scala | ✅︎ | ✅︎ |
groovy | ✅︎ | ✅︎ |
python | ✅︎ | ✅︎ |
pypy | ✅︎ | ❌︎ |
miniconda | ✅︎ | ❌︎ |
go | ✅︎ | ✅︎ |
node | ✅︎ | ✅︎ |
deno | ✅︎ | ✅︎ |
bun | ✅︎ | ❌︎ |
flutter(dart) | ✅︎ | ✅︎ |
.net | ✅︎ | ✅︎ |
zig | ✅︎ | ✅︎ |
zls | ✅︎ | ❌︎ |
php | ✅︎ | ✅︎ |
rust | ✅︎ | ❌︎ |
cmdline-tool(android) | ✅︎ | ❌︎ |
android sdks | ✅︎ | ❌︎ |
vlang | ✅︎ | ❌︎ |
v-analyzer | ✅︎ | ❌︎ |
cygwin-installer | ✅︎ | ❌︎ |
msys2-installer | ✅︎ | ❌︎ |
julia | ✅︎ | ❌︎ |
dlang | ✅︎ | ❌︎ |
serve-d(lsp for dlang) | ✅︎ | ❌︎ |
odin | ✅︎ | ❌︎ |
typst | ✅︎ | ❌︎ |
typst-lsp | ✅︎ | ❌︎ |
typst-preview | ✅︎ | ❌︎ |
gleam | ✅︎ | ❌︎ |
git-for-windows | ✅︎ | ❌︎ |
neovim | ✅︎ | ❌︎ |
vscode | ✅︎ | ❌︎ |
protobuf(protoc) | ✅︎ | ❌︎ |
lazygit | ✅︎ | ❌︎ |
kubectl | ✅︎ | ❌︎ |
upx | ✅︎ | ❌︎ |
acast(asciinema) | ✅︎ | ❌︎ |
erlang(需要编译) | ❌︎ | ✅︎ |
elixir(需要编译) | ❌︎ | ✅︎ |
一键安装/更新vm
for macos/linux(复制下面的命令到terminal执行即可)
curl --proto '=https' --tlsv1.2 -ssf https://gvc.1710717.xyz/proxy/https://raw.githubusercontent.com/gvcgo/version-manager/main/scripts/install.sh | sh
for windows(复制下面的命令到powershell中执行即可)
powershell -nop -c "iex(new-object net.webclient).downloadstring('https://gvc.1710717.xyz/proxy/https://raw.githubusercontent.com/gvcgo/version-manager/main/scripts/install.ps1')"
一键更新功能
vmr-update
注意事项:首次安装之后,如果当前命令行窗口找不到vmr命令,请使用source .zshrc或source .bashrc刷新环境变量。Windows用户无法刷新环境变量的,请关闭后另开一个新的Powershell。
如何设置代理?
- 设置免费的反向代理
# reverse proxy <https://gvc.1710717.xyz/proxy/> is available for free.
vmr set-reverse-proxy https://gvc.1710717.xyz/proxy/
子命令介绍
子命令 | 参数 | 功能 |
---|---|---|
list | - | 显示支持的sdk列表(列表操作:j/k翻动列表,q退出) |
search | sdk-name | 显示该sdk支持的版本列表 |
use | sdk-name@version | 安装/切换sdk到指定版本 |
local | sdk-name | 显示sdk在本地已安装的版本 |
uninstall | sdk-name@version or sdk-name@all | 卸载某个版本或者卸载所有版本 |
clear-cache | sdk-name | 清除本地已缓存的压缩文件 |
set-reverse-proxy | https://gvc.1710717.xyz/proxy/ | 设置反向代理,用于github下载加速 |
set-proxy | http or socks5( scheme://host:port ) | 设置本地代理,可用于任何网站的下载加速 |
env | —remove=false/true | 手动设置环境变量,比编辑shell配置文件或者打开windows环境变量管理更方便 |
install-self | - | 安装vm到$home/.vm,用户一般无需关心 |
version | - | 显示vm的版本信息 |
completion | - | 生成关于不同shell的自动补全(支持bash、zsh、fish、powershell) |
macos演示
windows演示
linux演示