本地部署VIM Adventures(VIM大冒险)
本地部署VIM AdventuresVIM大冒险1. 简介VIM Adventures是一款用于学习VIM编辑器使用的在线网页端小游戏通过这个游戏我们能够快速掌握VIM的一些常用的基本命令可谓是新手福音。这款游戏有官方版本官网https://vim-adventures.com但是在官方版本中只有前三关是免费的想要游玩之后的关卡需要购买证书需要25美元且只有6个月使用期。由于价格对于很多学生党来说可能略高而且在国内购买也不太方便我选择寻找其他能够免费完整体验这个游戏的方法。2. 本地部署2.1. 开源项目Github上曾有对该游戏进行逆向的项目也有很多相关的folk项目但这些项目都被游戏原作者要求下架了这些项目现在要么显示takedown要么就是404。详情见https://github.com/github/dmca/blob/fe3a3533c22817d674fec81fd4f814f7d3f187c2/2020/11/2020-11-12-VIMAdventures.md因此现在Github上已经找不到相关的项目了。使用互联网档案馆查找这些项目曾经的存档目前能找到且源码还能下载的只有https://github.com/wattry/vim-adventures这个项目的归档打开要科学上网https://web.archive.org/web/20201013182809/https://github.com/wattry/vim-adventures或者可以在以下网站下载项目源码https://vim-adventures2.pages.dev该项目将VIM Adventures的核心代码逆向了出来现在只需要将项目下载下来部署于本地就可以游玩这个游戏的完整版本。2.2. 使用方法简述要想使用该项目你需要将它部署在本地或者云端的服务器上。原项目有打包好的可执行程序设置一下环境变量直接运行就能完成部署也有完整源代码需要配置好Nodejs环境使用npm构建安装后才能使用。另外笔者又修改完善了该项目的代码和相关文件就得到了两大修改后的新版本一个是动态网页版就是在原项目的基础上配置好了Nodejs的第三方库只需要安装好Nodejs即可运行另外一个版本是静态网页版无须配置Nodejs环境托管在静态服务器上即可运行。Vim Adventures是可以保存和加载游戏进度的原项目版本和笔者的动态网页版可以将游戏进度数据保存在服务器上而静态网页版会将游戏进度数据保存在浏览器只需要将一些资源文件放在静态服务器上就能运行部署最方便。由于移动端没有自带键盘原版的VIM Adventures只能在PC端上的浏览器游玩除非为移动端接上外接键盘否则无法直接在移动端浏览器上使用笔者为解决这一问题又针对移动端浏览器修改制作了兼容移动端的静态网页版这一版本主要是为移动端添加了js虚拟键盘详见下文的静态网页版部署。如果你已经迫不及待想玩到这个游戏可以免费游玩笔者搭建的在线版本https://vim-adventures2.pages.dev由于这个托管服务是免费的游戏进度可能因托管服务失效而丢失因此建议部署在自己的服务器上。接下来介绍这三个版本的部署方式。其中第一种原项目直接部署和第三种静态网页部署的方法最简单成本最低。2.3. 原项目部署原项目归档地址https://web.archive.org/web/20201013182647/https://github.com/wattry/vim-adventures原项目有2种部署方式一种是直接下载打包好的程序配置一下环境变量然后运行即可完成直接部署最简单快捷还有一种是下载源码并配置好nodejs环境构建安装进行部署。该项目的文件可以通过如下方法获取打开项目的Releases页面进行下载https://web.archive.org/web/20201013182809/https://github.com/wattry/vim-adventures/releases/tag/v1.1.0如果上述链接无法打开可以使用以下链接下载备用链接1https://fileditchfiles.me/file.php?f/s22/ohjZVGOJHmWPUdwageo.zip备用链接2https://files.catbox.moe/chq283.zip备用链接3https://wwbbt.lanzout.com/iaAtW3h469ni具体需要用到哪些文件见下文。2.3.1. 方法一直接部署1. 下载打包好的程序根据自己的系统选择对应的程序这里以Windows系统举例需要下载vim-adventures-win.exe那么需要从Releases页面下载该程序或者从直链下载得到的压缩包中找到该程序。2. 设置环境变量主要设置APP_DIR和PORT两个环境变量前者用于指定游戏存档数据的保存位置后者用于指定服务器监听的端口有两种设置方法1方法一在程序运行前用命令行命令设置环境变量比如在Windows下set APP_DIR%USERPROFILE%\vim-adventures set PORT80那么会将游戏存档保存在用户主目录的vim-adventures目录下设监听端口为80。2方法二在程序的同级目录下新建一个名为.env的文件在该文件中写入如下内容APP_DIR$HOME/vim-adventures PORT80作用同上。3. 运行程序2.3.2. 方法二源码构建部署从源码构建打包得到游戏服务端程序。1. 下载并安装nodejshttps://nodejs.org/en/download这里使用14.21.3版本其他版本在接下来进行构建时可能会报错。2. 下载项目源代码从Releases页面选择Source Code(tar.gz)下载或在直链下载压缩包中找到vim-adventures-1.1.0.tar.gz下载完后解压缩3. 进入工作目录项目的根目录是vim-adventures-1.1.0我们需要进入到项目根目录中的vim-adventures目录cd vim-adventures-1.1.04. 设置环境变量编辑项目根目录下的.env文件HOSThttp://localhost# NodeJS default locationAPP_DIR$HOME/vim-adventuresAPP_NAMEvim-adventuresPORT80APP_DIR设置存放最终打包得到的程序的目录需要设为绝对路径APP_NAME设置输出的程序名称可以根据需要自行设置。PORT设置端口。5. 构建安装npm run setup完成后会在APP_DIR目录下生成名为APP_NAME的程序比如在Windows下使用上述设置会在用户主目录的vim-adventures文件夹下生成vim-adventures.exe程序。另外在APP_DIR目录下也会生成一个.env文件修改该中文件PORT的值或使用命令行命令设置环境变量PORT可以设置端口。6. 运行直接运行vim-adventures.exe程序即可运行浏览器打开127.0.0.1就可以免费游玩了。2.3.3. 其他方法归档项目的主页有讲到使用docker部署的方法。2.4. 动态网页部署部署方法和上文中的原项目从源码构建部署方法相同需要下载Nodejs但不需要进行第4步构建安装的过程避免了构建安装过程中可能出现的报错。1. 安装Nodejs2. 下载动态网页版文件https://wwbbt.lanzout.com/i8P823h44uqf下载完后解压缩3. 进入工作目录cd vim-adventures-dynamic4. 运行node bin/www.js5. 端口和文件保存路径设置同原项目部署方法2.5. 静态网页部署这里你需要一个静态服务器例如nginx和apache或者托管在免费的静态网站上比如InfinityFree。这里以python示例1. 下载安装python在windows下要将python添加到环境变量2. 下载静态网页版文件在这里笔者根据不同的需求又制作了3个不同的静态网页版本大家可以根据自己的需求下载相应的版本1仅支持PC的静态网页版仅支持PC端无须联网从CDN加载资源文件https://wwbbt.lanzout.com/iSs783h44ush2兼容移动端的静态网页版兼容移动端和PC端浏览器不兼容平板需要联网从CDN加载资源文件https://wwbbt.lanzout.com/i644c3h44urg3兼容移动端的完全静态网页版兼容移动端和PC端浏览器不兼容平板所有资源文件均托管于静态服务器上可以部署于独立的局域网无须访问互联网也可正常游玩https://wwbbt.lanzout.com/iGzYj3h44uwb下载完后解压缩3. 进入工作目录4. 运行服务器python -m http.server 80这里设为80端口浏览器打开127.0.0.1即可游玩注意静态网页版会将游戏进度数据保存在浏览器如果浏览器数据清空那么游戏进度也会清空。3. 简单上手游戏进度管理1. 保存进度:w filename可以将当前游戏进度以文件形式保存并将其命名为filename2. 显示已有存档:!ls可以列出已保存的游戏进度3. 载入存档:e filename可以载入名为filename的存档4. 删除存档:!rm filename可以删除名为filename的存档5. 载入指定关卡:level n直接载入第n关这样的话即使没有保存进度也不用从第一关开始打了其他相关的命令信息都可以在游戏界面的左下方找到。4. 相关链接源码及各修改版下载及在线游玩https://vim-adventures2.pages.dev原项目归档https://web.archive.org/web/20201013182809/https://github.com/wattry/vim-adventures原项目文件备用链接1https://fileditchfiles.me/file.php?f/s22/ohjZVGOJHmWPUdwageo.zip原项目文件备用链接2https://files.catbox.moe/chq283.zip原项目文件备用链接3https://wwbbt.lanzout.com/iaAtW3h469ni动态网页版文件https://wwbbt.lanzout.com/i8P823h44uqfPC端静态网页版文件https://wwbbt.lanzout.com/iSs783h44ush兼容移动端且依赖外部资源的静态网页版https://wwbbt.lanzout.com/i644c3h44urg兼容移动端的独立静态网页版https://wwbbt.lanzout.com/iGzYj3h44uwbGithub DMCA 2020-11-12-VIMAdventures.mdhttps://github.com/github/dmca/blob/fe3a3533c22817d674fec81fd4f814f7d3f187c2/2020/11/2020-11-12-VIMAdventures.md

相关新闻

C++正则表达式

C++正则表达式

正则表达式&#xff08;Regular Expression&#xff0c;简称regex&#xff09;是一种用于描述字符串模式的工具&#xff0c;可实现字符串的匹配、搜索、替换、提取等高效操作。C自C11起&#xff0c;通过标准库<regex>头文件正式引入正则表达式支持&#xff0c;无需依赖第…

2026/9/30 1:47:52 阅读更多 →
麒麟系统通用开发环境搭建实战:从零配置到高效开发

麒麟系统通用开发环境搭建实战:从零配置到高效开发

1. 项目概述&#xff1a;为什么要在麒麟系统上搭建开发环境&#xff1f; 最近几年&#xff0c;国产操作系统&#xff0c;特别是以麒麟系列为代表的Linux发行版&#xff0c;在政企、金融、教育等领域的应用越来越广泛。作为一名长期在Linux环境下摸爬滚打的开发者&#xff0c;我…

2026/9/25 12:31:58 阅读更多 →
一些好用的网站(持续跟进)

一些好用的网站(持续跟进)

1、Z-Library&#xff0c;免费下载电子书&#xff0c;热门电影和游戏&#xff0c;还有很多绝版书籍和资源。 链接:Z站图书馆入口 - 官方Z站镜像网址(2025持续更新) 2、lunarora&#xff0c;免费下载电子书 链接&#xff1a;鹿鸣川 - 呦呦鹿鸣处 书卷汇成川 3、读书派&#…

2026/9/29 13:19:27 阅读更多 →

最新新闻

大麦抢票脚本教程:5分钟跑通的Python自动抢票完整指南

大麦抢票脚本教程:5分钟跑通的Python自动抢票完整指南

大麦抢票脚本教程&#xff1a;5分钟跑通的Python自动抢票完整指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 开抢的那一秒&#xff0c;网页上的"立即购买"还没…

2026/9/30 1:48:24 阅读更多 →
分布式高并发微服务架构设计圣经:数据一致性、高可用防护与领域驱动设计 DDD 闭环

分布式高并发微服务架构设计圣经:数据一致性、高可用防护与领域驱动设计 DDD 闭环

分布式高并发微服务架构设计圣经&#xff1a;数据一致性、高可用防护与领域驱动设计 DDD 闭环在现代企业级分布式系统、互联网大厂核心中台与千万级高并发业务演进中&#xff0c;如何设计一套能够抵御网络分区&#xff08;Network Partition&#xff09;、支撑突发海量并发洪峰…

2026/9/30 1:48:24 阅读更多 →
PM2 集群模式启动 TCP 服务:从 ecosystem 配置到 Node 负载均衡原理

PM2 集群模式启动 TCP 服务:从 ecosystem 配置到 Node 负载均衡原理

运维CLI可观测性 【免费下载链接】pm2 Node.js/Typescript/Bun Production Process Manager with a built-in Load Balancer. 项目地址&#xff1a; https://gitcode.com/gh_mirrors/pm/pm2 点击查看 免费下载 导读 本篇文章围绕 PM2 仓库中 examples/cluster-tcp 示例&#…

2026/9/30 1:48:24 阅读更多 →
基于 internal-comms Skill 编写全公司 FAQ 回复指南:从信号采集到问答成文的完整流程

基于 internal-comms Skill 编写全公司 FAQ 回复指南:从信号采集到问答成文的完整流程

人工智能AI 技能AI 评测 【免费下载链接】skills Public repository for Agent Skills 项目地址&#xff1a; https://gitcode.com/GitHub_Trending/skills3/skills 点击查看 免费下载 公司内部沟通中&#xff0c;FAQ 回复是最能直接降低全员工信息差、消除重复提问焦虑的文档…

2026/9/30 1:48:24 阅读更多 →
大模型多语言数学与逻辑评测基准:跨语言多步推导的综合 Leaderboard 自动化构建

大模型多语言数学与逻辑评测基准:跨语言多步推导的综合 Leaderboard 自动化构建

大模型多语言数学与逻辑评测基准&#xff1a;跨语言多步推导的综合 Leaderboard 自动化构建在大语言模型&#xff08;LLM&#xff09;从实验室预训练走向商业化交付与跨国多语言能力验收的最后关键战役中&#xff0c;研发委员会面临着一个极其严肃的**“全景能力权威综合仲裁命…

2026/9/30 1:48:24 阅读更多 →
SeaweedFS 远端对象缓存(Remote Object Cache)集成测试全解析:从 Write–Uncache–Read 流程到 Singleflight 去重与 68 个测试用例

SeaweedFS 远端对象缓存(Remote Object Cache)集成测试全解析:从 Write–Uncache–Read 流程到 Singleflight 去重与 68 个测试用例

分布式文件系统对象存储存储 【免费下载链接】seaweedfs SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables, designed to handle billions of files with O(1) disk access and effortless horizontal scaling. 项目地址…

2026/9/30 1:47:23 阅读更多 →

日新闻

Base64 图片头部特征识别:从文件头到格式判断的完整指南

Base64 图片头部特征识别:从文件头到格式判断的完整指南

1. 项目概述&#xff1a;为什么说看懂 base64 图片头部是基本功这几年跟 base64 打交道的机会越来越多&#xff0c;后端接口返回图片、前端渲染验证码、小程序里存小图、还有一些老系统导出报表&#xff0c;动不动就给你一段长到怀疑人生的 base64 字符串。很多人拿到字符串就直…

2026/9/30 0:00:35 阅读更多 →
Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

Java公交站牌广告管理系统:JSP+Servlet+MySQL实战落地指南

简介&#xff1a;本资源是一份面向Java初学者与课程设计学生的公交站牌广告灯箱管理系统毕业设计文档&#xff0c;聚焦城市公共广告资源信息化管理痛点&#xff0c;提供从需求分析到技术实现的完整方案。文档采用标准学术论文结构&#xff0c;含摘要、英文摘要、目录及五章正文…

2026/9/30 0:00:35 阅读更多 →
用 Redis Lua 构建大模型 API 多租户原子配额治理体系

用 Redis Lua 构建大模型 API 多租户原子配额治理体系

我去年年底接了一个内部 AI 平台的治理需求&#xff0c;背景很直接&#xff1a;公司把 DeepSeek、MiniMax 这类大模型 API 统一封装成内部网关&#xff0c;开放给几个业务团队用。结果第一个月账单出来&#xff0c;额度直接超了 4 倍。仔细查日志&#xff0c;发现原因并不复杂—…

2026/9/30 0:00:35 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集&#xff1a;Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/29 16:41:41 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践&#xff1a;原型怎样变成可用功能分类&#xff1a;[AI/大模型]细分主题&#xff1a;AI 增强型 CI/CD 流水线自动化与 GitOps 实践&#xff1a;Agent 工作流、工具调用与任务拆解&#xff1a;从原型到生产的验收清单很多团队在尝试用大…

2026/9/29 19:29:29 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战&#xff1a;复盘记录怎样真正派上用场分类&#xff1a;[工程技术]细分主题&#xff1a;Kubernetes 生产环境运维与排障实战&#xff1a;可复制的项目复盘模板与决策记录大部分团队的事故复盘报告&#xff0c;最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理&#xff1a;核心链路应该先拆哪一步分类&#xff1a;[工程技术]细分主题&#xff1a;Docker 容器化技术与镜像安全管理&#xff1a;核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用&#xff08;包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →