入门介绍

Vim-Adventures是一个让初学者练习如何使用 Vim 的小游戏。它一共有 TODO 个 关卡,每个关卡都对应不同的 Vim 练习。一进网页我们可以看到这个画面:

点进去后就自动来到我们的第一关啦!

游戏里默认你是处于 Vim 中的 Normal模式。

  • 左下角的第一个 给了游戏进度处理的命令。
  • 第二个 给了你当前关卡需要用到的 Vim 操作键位,按下对应按键会给出提示,按esc退出提示。
  • 第三个 ‍♂️ 提示你使用 :login来进行登录,以使用 :w 保存游戏进度。需要注意的是,想要保存游戏进度需要购买一个网站的账号。
  • 第四个 显示游戏数据统计画面,具体显示你在关卡用了多长时间,用了多少步等。
  • 后面的blabla...不重要啦!!

Level1 移动训练

第一关的意义在于训练你在 Vim 的Normal模式下对光标移动的熟练度。

按下h, j, k, l四个键来分别进行光标左,下,上,右的移动。

使用 :help命令来获取对应按键的帮助。

  • 左上角的宝箱在第一关是暂时无法只使用上下左右键通过的。

  • 后面遇到的斜坡需要看npc的提示来通过:

    这个小朋友说的东西翻译过来是:

    向上或向下移动到一条较短的线(即进入水中)会将您移动到较短的线中的最后一列,但如果您继续移动到较长的线,您将在开始时所在的同一列结束!

    提示解释了 Vim 在使用 j, k 键换行时的跳转特性,即在参差不齐的行之间跳转时,光标会以开始跳转时所在的位置为终点线,每次跳转都尽可能地去靠近终点线。下图就是不同位置产生的不同跳转路线:

    通过三个斜坡,就需要在三个位置进行跳转:

    最后就可以顺利到达第一关终点。

Level2 词跳转

词跳转: w (下一个词), b (词初), e (词尾),输入 :help + <key> 来获取详细帮助。

第二关我们的目的很明显,收集三个按键,三把钥匙。注意三把钥匙是用来开第三关的,先不着急回第一关开宝箱。

我们需要在这一关做的,是收集按键解锁按键功能后使用它们来进行词与词之间的跳转,此时石头就再也无法阻挡我们的脚步。小人给出的提示解释了 Vim 中对WORD的定义:

A word is a sequence of letters, digits and underscores, or a sequece of punctuation marks, or an empty line.

单词是字母、数字和下划线的序列,或者是标点符号的序列,或者是空行。

Level3 删除

在这一关,我们需要做的是:

  • 在30秒内利用w, e, b进行词跳转获取x按键

  • 利用x按键进行对标红字符的删除

  • 回第一关开宝箱

一开始不熟练的话会很头痛,跳得很慢很慢,但发现了一个技巧就是we键轮换着不停地按,能很快跳到最后!

然后回去删除标红字符,搞定后捡起爆出来的钥匙回第一关开宝箱~!

到达宝箱处时要注意,使用b跳转是不行的,要使用大写B跳转:

最后开启宝箱..音效和画面多少有点哈人了

后面的关卡

呃呃,想玩后面的关卡就给我狠狠地爆米!免费的部分到这里也就结束了,解锁后续内容需要购买一个价值25美刀的账号..而且只能用六个月..但不得不说这小游戏还是可以的!

后续内容有前辈搞过了,就放个链接好了:https://zhuanlan.zhihu.com/p/165254171

希望能早日用熟练 Vim, 赶紧出狱不坐牢~

Vim-Adventures 有趣的Vim小游戏的更多相关文章

  1. 推荐10款超级有趣的HTML5小游戏

    HTML5的发展速度比任何人的都想像都要更快.更加强大有效的和专业的解决方案已经被开发......甚至在游戏世界中!这里跟大家分享有10款超级趣味的HTML5游戏,希望大家能够喜欢! Kern Typ ...

  2. Linux系统中有趣的命令(可以玩小游戏)

    Linux系统中有趣的命令(可以玩小游戏) 前言 最近,我在看一些关于Linux系统的内容,这里面的内容是真的越学越枯燥,果然学习的过程还是不容易的.记得前几个月初学Linux时,有时候就会碰到小彩蛋 ...

  3. Vim 新手节省时间的小技巧

    1. 不关闭终端退出编辑器 使用 Vim 编辑器保存并退出编辑状态是一件轻而易举的事,你只需记住按 ESC 键切换到正常模式,然后输入冒号(:),之后输入 wq 即可实现保存并退出. :wq 如果不想 ...

  4. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册       首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...

  5. 第九章 nginx基础之搭建小游戏

    一.nginx部署 1.epel源安装 [root@web01 ~]# yum install -y nginx 2.官方源安装 1.配置官方源[root@web02 ~]# vim /etc/yum ...

  6. 如何临时发布部署Cocos小游戏到Linux服务器,让别人能在微信打开

    两个星期前,我们发布了第一个小游戏教程: 教程:制作一个小游戏送给喜欢的TA(不会编程也能学会哦) 上周有好几位小伙伴在b站催更,呃,作为小透明,收到催更信息后还是很激动的!竟然有同学在看我们的小教程 ...

  7. Unity小游戏制作 - 暗影随行

    用Unity制作小游戏 - 暗影惊吓 最近玩了一个小游戏,叫做暗影惊吓,虽然是一个十分简单的小游戏,但是感觉还是十分有趣的.这里就用Unity来实现一个类似的游戏. 项目源码:DarkFollow 主 ...

  8. html5+Canvas实现酷炫的小游戏

    最近除了做业务,也在尝试学习h5和移动端,在这个过程中,学到了很多,利用h5和canvas做了一个爱心鱼的小游戏.点这里去玩一下 PS: 貌似有点闪屏,亲测多刷新两下就好了==.代码在本地跑都不会闪, ...

  9. [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏

    前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示    ...

  10. Monyer.cn黑客小游戏

    花了一天的时间,Monyer给大家带来了一个有趣的东东——拥有15个关卡的黑客小游戏. 入口http://monyer.com/game/game1 因为一直以来都是大家跟我一起学习网络技术嘛,所以这 ...

随机推荐

  1. 基于python的数学建模---分支定界算法

    zip函数 a = [1,2,3,4]b = [5,6,7,8]i = sum(x * y for x, y in zip(a, b))print(i)70 floor and ceil 函数 imp ...

  2. Jmeter启动报错: ANOMALY: use of REX.w is meaningless (default operand size is 64), Unrecognized option: --add-opens

    摘要:需要远程到其他电脑,把本机的jmeter打包发到远程的电脑上,启动jmeter时报错如下: 原因分析:第一反应无法创建java虚拟机我以为是没有JDK,通过CMD   Java -version ...

  3. JSON提取器中串联一个接口的多个值传给下个接口(compute concatenation var的实际使用场景)

    实际场景:某功能在前端支持选择多条数据后点击提交,表现在接口是,一次传了多个Id. 问题:需要将上个接口的多个Id串联,传给提交接口. 处理方式:通过JSON提取器勾选:compute concate ...

  4. day23 约束 & 锁 & 范式

    考点: 乐观锁=>悲观锁=>锁 表与表的对应关系 一对一:学生与手机号,一个学生对一个手机号 一对多:班级与学生,一个班级对应多个学生 多对一: 多对多:学生与科目,一个学生对应多个科目, ...

  5. 疫情可视化part3

    前言 之前在part2中说的添加自定义主题配色已经开发完成了,除此之外我还添加了一些的3d特效. 前期文章 这是part1的文章:https://blog.csdn.net/xi1213/articl ...

  6. 最新 2022 年 Kubernetes 面试题高级面试题及附答案解析

    题1:Kubernetes Service 都有哪些类型? 通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上.其主要类型有: C ...

  7. java并发数据结构之CopyOnWriteArrayList

    CopyOnWriteArrayList是一个线程安全的List实现,其在对对象进行读操作时,由于对象没有发生改变,因此不需要加锁,反之在对象进行增删等修改操作时,它会先复制一个对象副本,然后对副本进 ...

  8. Django静态文件配置、form表单、request对象、连接数据库、ORM

    目录 静态文件配置 静态文件相关配置 1.接口前缀 浏览器停用缓存 2.接口前缀动态匹配 form表单 action 控制数据提交的地址 method 控制数据提交的方法 请求方法补充 get: 朝服 ...

  9. 手写promise解决回调地狱问题

    在介绍promise之前我们先来看一段代码: 根据案例我们可以看出,这段代码可以无限的嵌套下去,但是每嵌套一层,代码的运行就会降低,而解决回调地狱最好的办法就是new promise 一.什么是 pr ...

  10. [常用工具] Python视频处理库VidGear使用指北

    VidGear是一个高性能的Python视频处理库,它在预载多个专业视频图像处理库的基础上,如OpenCV.FFmpeg.ZeroMQ.picamera.starlette.yt_dlp.pyscre ...