我们都知道,Vim 是 Linux 下一种非常重要的文本编辑器,我们可以用它来看代码、改代码,很多高手直接将 Vim 打造成一款强大的 IDE 用来写代码。

但是,对于新手而言,Vim 相对于其它编辑器而言,更难入门。Vim 是无图形界面的编辑器,一切操作全靠指令,而且指令又非常多非常杂,学习起来非常费劲。

那有没更快更轻松的方法来学习 Vim 呢?这里良许介绍一款游戏,通过这款游戏就可以提高 Vim 操作技能。

这款游戏叫 PacVim ,它其实是受一款叫 PacMan (中文名:吃豆人)的游戏的启发而开发出来。二者非常相似,都是躲避怪物,吃完豆豆。所不同的是,PacVim 全程使用 Vim 的指令来操作主角,通过这种方式来提高你的 Vim 水平。

安装 PacVim 游戏

这款游戏源码托管在 GitHub 上,只需下载后编译安装即可。

$ git clone https://github.com/jmoon018/PacVim.git
$ cd PacVim
$ sudo make install

启动游戏

安装成功后,可执行以下命令来启动游戏:

$ pacvim [LEVEL_NUMER] [MODE]

其中:

  • LEVEL_NUMER:表示关卡号
  • MODE:表示难度,n - 正式模式,h - 困难模式

例如,我们要玩第 5 关,正式模式的游戏,我们可以这样启动游戏:

$ pacvim 5 n

而如果我们仅仅想从头开始玩游戏,则只需这样:

$ pacvim

下图是游戏运行后的情况:

游戏看起来还是挺好玩的,至少比单纯去记那些命令要强很多。

退出游戏

游戏的退出很简单,只需按下 ESC 或者 q 即可。

游戏规则

如前文所述,游戏的基本规则就是躲避怪物,吃完豆豆。但这里面,豆豆是一个个白色单词,你在经过时,一个个字符就会变成绿色。

在游戏里,主角是一个绿色方块,怪物是大写红色字母 G 。有两种障碍物:

  1. 黄颜色的是代表墙壁,你不能越过墙壁;
  2. 青色的飘号键 ~ ,它不会攻击你,但你也不能碰它,一碰你就挂。

你一共有 3 条命,但在通过第 0,3,6,9 关时,会额外奖励一条生命。游戏一共 10 关,从 0 ~ 9,通过第 9 关后,将重新从第 0 关开始,但难度加大。

a. 胜利的条件

操作绿色方块,将白色字符变成绿色字符,当所有的白色字符都变成绿色时,你就赢了那一关,进入到下一关。全程操作使用 Vim 命令。

b. 失败的条件

如果你碰到了怪物(大写字母 G)或飘号键 ~ ,你就挂了,失去一条生命。当所有生命都失去时,游戏就结束了。

既然是用来学习 Vim 操作的,那我们肯定要知道 Vim 有哪一些指令。常用指令如下图:

通过这个游戏,在紧张和压力下,你的 Vim 命令不知不觉就记住了,后面再去操作 Vim 编辑器时,简直会运指如飞!一起来玩玩吧!


公众号:良许Linux

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

寓教于乐!一款游戏让你成为 Vim 高手!的更多相关文章

  1. 怎么样cocos2d-x正在使用ECS(实体-包裹-制)建筑方法来开发一款游戏?

    简介 在我的博客,我翻译的几篇文章ECS文章.这些文章都是从Game Development站点.假设你对这个架构方式还不是非常了解的话.欢迎阅读理解 组件-实体-系统和实现 组件-实体-系统. 我发 ...

  2. cocos2d 15款游戏源码

    https://blog.csdn.net/jailman/article/details/78678972

  3. Vim高手,从来不用鼠标

    Vim脱离鼠标第一步 平时不可缺少的会用到vim,但是避免不了鼠标,事实上,省略鼠标是完全可以的,没有想像中那么难,看我短短几行带大家一起省略鼠标. 对了,vim有三种模式,基本模式就是用来输入命令的 ...

  4. Vim高手,从来不用鼠标2——替换、撤销、缩进、查找

    本文章原创首发于公众号:编程三分钟 vim 替换.撤销.缩进.查找 上一次我们掌握了移动.跳转.定位.操作(删除.复制.粘贴),基本使用vim脱离鼠标完全是可以做到的了.速记如下: 移动: h,l,j ...

  5. 强力推荐!五款能让你成为Excel“高手”的Excel插件

    excel是大家日常生活中经常用到一款表格软件,虽然软件本身的功能已经非常齐全了,但是插件可以进一步加强软件的功能,为用户提供更好的体验,提高工作效率,需要的用户快来看看吧. 1.Smartbi 首推 ...

  6. 让你忘记 Flash 的15款精彩 HTML5 游戏

    HTML5 游戏开发是一个热门的话题,开发人员和设计人员最近经常谈论到.虽然不能迅速取代 Flash 的地位,但是 HTML5 凭借它的开放性和强大的编程能力,取代 Flash 是必然的趋势.你会看到 ...

  7. 2016年 最火的 15 款 HTML5 游戏引擎

    HTML5游戏从2014年Egret引擎开发的神经猫引爆朋友圈之后,就开始一发不可收拾,今年<传奇世界>更是突破流水2000万!从两年多的发展来看,游戏开发变得越来越复杂,需要制作各种炫丽 ...

  8. (转)HTML5游戏如何挣钱?2条经验让你每款赚3万刀

    原文作者:Alexander Krug,是世界上最大的HTML5游戏平台的运营商SOFTGAMES的CEO. 现今苹果App Store当中的应用数量可以以海量来形容,最新发布的应用对排行榜的冲击力也 ...

  9. 盘点20款表现出众的HTML5游戏

    不管是对用户还是开发者来说,HTML5和JavaScript游戏这几年的发展真的是件好事.随着浏览器平台的日趋成熟,并开始整合这类型游戏所 要求的技术,我们每天都能在各大应用商店和社交网站中看到越来越 ...

随机推荐

  1. 微信小程序订阅

    微信小程序订阅 摘要 1.基于promise封装微信小程序订阅 2.解决由于微信基础库版本低下的兼容 3.解决“总是保持以上选择,不再询问”的取消状态 主要运用API: requestSubscrib ...

  2. eatwhatApp开发实战(九)

    之前我们为app在item项上添加了点击出现修改对话框,对店名进行修改的功能,其中我们会发现我们点击item和点击item上的按钮会有点击冲突.这次我们来修正下这个问题,同时介绍item项的长按点击O ...

  3. Java集合(九)哈希冲突及解决哈希冲突的4种方式

    Java集合(九)哈希冲突及解决哈希冲突的4种方式 一.哈希冲突 (一).产生的原因 哈希是通过对数据进行再压缩,提高效率的一种解决方法.但由于通过哈希函数产生的哈希值是有限的,而数据可能比较多,导致 ...

  4. meavn项目由打包方式jar改为war报Cannot install Dynamic Web Module 2.5 facet. It is incompatibile with already installed facets: Utility Module. Please modify project configuration.处理方式

    找到  \项目名\.setting\文件夹下的   org.eclipse.wst.common.project.facet.core.xml  xml文件. 添加或修改 <installed ...

  5. SpringBoot 集成 Mybatis(三)

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.增加持久化层 <dependency> <groupId>mysql< ...

  6. SpringMVC(三)Restful风格及实例、参数的转换

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Restful风格 1.Restful风格的介绍 Restful 一种软件架构风格.设计风格,而不是 ...

  7. SpringMVC(一)概述、解析器与注解

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.SpringMVC的概述 1.概述 Spring MVC框架是一个开源的Java平台,为开发强大的基 ...

  8. ASP.NET MVC 数据传递进阶 从数据库拿到数据后的三种方式

    目录 回顾 数据 显示 因为这个小练习有EF的一些东西,我们来回顾一下. 一.回顾 回顾一点EF的知识怎么生成数据库模型. 1.首先我们在Models文件夹右键添加新建项,在数据分栏下有ADO.NET ...

  9. Java实现 LeetCode 45 跳跃游戏 II(二)

    45. 跳跃游戏 II 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [ ...

  10. java实现取球游戏

    /* 今盒子里有 n 个小球,A.B 两人轮流从盒中取球,每个人都可以看到另一个人取了多少个, 也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断. 我们约定: 每个人从盒子中取出的球的 ...