vmr简介

vmr 是一个简单,跨平台,并且经过良好测试的版本管理工具。它完全是为了通用目的而创建的。无需插件,开箱即用。

可能你已经听说过fnm, sdkman, gvm, nvm, pyenv, phpenv 等工具。然而,这些工具都不能管理多种编程语言,甚至有些看起来会比较复杂。而vmr支持了国内程序员常用的几乎所有编程语言,并且支持了vlang、zig、typst等新兴的有一定潜力的语言,它隔离并缓存了爬虫部分的结果,而不是让爬虫变成lua插件,所以vmr能让用户体验更流畅和稳定。此外,vmr还支持了反向代理或者本地代理设置,多线程下载等,大大提高国内用户的下载体验。因此,不管你是老鸟还是菜鸟,vmr都能给你带来相当的便利。你不用再手动去找任何资源,就能轻松安装管理各种sdk版本,尝试新的语言,新的特性。最后,vmr将这些sdk或工具集中管理,对于有洁癖的人来说,也是福音。

b站演示视频(不包含project锁定版本)

文档


功能特点

  • 跨平台,支持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执行即可)

    1. 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中执行即可)

    1. 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')"
  • 一键更新功能

    1. vmr-update

注意事项:首次安装之后,如果当前命令行窗口找不到vmr命令,请使用source .zshrc或source .bashrc刷新环境变量。Windows用户无法刷新环境变量的,请关闭后另开一个新的Powershell。


如何设置代理?

  • 设置免费的反向代理
  1. # reverse proxy <https://gvc.1710717.xyz/proxy/> is available for free.
  2. 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演示

demo

windows演示

demo

linux演示

demo


贡献者

感谢以下贡献者对本项目的贡献。 关于 - 图4