寓教于乐!一款游戏让你成为 Vim 高手!
我们都知道,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 。有两种障碍物:
- 黄颜色的是代表墙壁,你不能越过墙壁;
- 青色的飘号键
~,它不会攻击你,但你也不能碰它,一碰你就挂。
你一共有 3 条命,但在通过第 0,3,6,9 关时,会额外奖励一条生命。游戏一共 10 关,从 0 ~ 9,通过第 9 关后,将重新从第 0 关开始,但难度加大。
a. 胜利的条件
操作绿色方块,将白色字符变成绿色字符,当所有的白色字符都变成绿色时,你就赢了那一关,进入到下一关。全程操作使用 Vim 命令。
b. 失败的条件
如果你碰到了怪物(大写字母 G)或飘号键 ~ ,你就挂了,失去一条生命。当所有生命都失去时,游戏就结束了。
既然是用来学习 Vim 操作的,那我们肯定要知道 Vim 有哪一些指令。常用指令如下图:

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

有收获?希望老铁们来个三连击,给更多的人看到这篇文章
寓教于乐!一款游戏让你成为 Vim 高手!的更多相关文章
- 怎么样cocos2d-x正在使用ECS(实体-包裹-制)建筑方法来开发一款游戏?
简介 在我的博客,我翻译的几篇文章ECS文章.这些文章都是从Game Development站点.假设你对这个架构方式还不是非常了解的话.欢迎阅读理解 组件-实体-系统和实现 组件-实体-系统. 我发 ...
- cocos2d 15款游戏源码
https://blog.csdn.net/jailman/article/details/78678972
- Vim高手,从来不用鼠标
Vim脱离鼠标第一步 平时不可缺少的会用到vim,但是避免不了鼠标,事实上,省略鼠标是完全可以的,没有想像中那么难,看我短短几行带大家一起省略鼠标. 对了,vim有三种模式,基本模式就是用来输入命令的 ...
- Vim高手,从来不用鼠标2——替换、撤销、缩进、查找
本文章原创首发于公众号:编程三分钟 vim 替换.撤销.缩进.查找 上一次我们掌握了移动.跳转.定位.操作(删除.复制.粘贴),基本使用vim脱离鼠标完全是可以做到的了.速记如下: 移动: h,l,j ...
- 强力推荐!五款能让你成为Excel“高手”的Excel插件
excel是大家日常生活中经常用到一款表格软件,虽然软件本身的功能已经非常齐全了,但是插件可以进一步加强软件的功能,为用户提供更好的体验,提高工作效率,需要的用户快来看看吧. 1.Smartbi 首推 ...
- 让你忘记 Flash 的15款精彩 HTML5 游戏
HTML5 游戏开发是一个热门的话题,开发人员和设计人员最近经常谈论到.虽然不能迅速取代 Flash 的地位,但是 HTML5 凭借它的开放性和强大的编程能力,取代 Flash 是必然的趋势.你会看到 ...
- 2016年 最火的 15 款 HTML5 游戏引擎
HTML5游戏从2014年Egret引擎开发的神经猫引爆朋友圈之后,就开始一发不可收拾,今年<传奇世界>更是突破流水2000万!从两年多的发展来看,游戏开发变得越来越复杂,需要制作各种炫丽 ...
- (转)HTML5游戏如何挣钱?2条经验让你每款赚3万刀
原文作者:Alexander Krug,是世界上最大的HTML5游戏平台的运营商SOFTGAMES的CEO. 现今苹果App Store当中的应用数量可以以海量来形容,最新发布的应用对排行榜的冲击力也 ...
- 盘点20款表现出众的HTML5游戏
不管是对用户还是开发者来说,HTML5和JavaScript游戏这几年的发展真的是件好事.随着浏览器平台的日趋成熟,并开始整合这类型游戏所 要求的技术,我们每天都能在各大应用商店和社交网站中看到越来越 ...
随机推荐
- 最小生成树——Prim算法理解
背景:本文是在小甲鱼数据结构教学视频中的代码的基础上,添加详细注释而完成的.该段代码并不完整,仅摘录了核心算法部分,结合自己的思考,谈谈理解. Prim算法理解: 如图(摘录自小甲鱼教学视频中的图片) ...
- 50个SQL语句(MySQL版) 问题十二
--------------------------表结构-------------------------- student(StuId,StuName,StuAge,StuSex) 学生表 tea ...
- jchdl - GSL实例 - Shifter
https://mp.weixin.qq.com/s/ngQji-xi4FCCbL_2ihUi_A Shifter是移位节点的父类,定义了输入输出线,但是没有定义具体的移位方式,这个留给子类去实现 ...
- Java实现 蓝桥杯 算法提高 最大乘积
算法提高 最大乘积 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? 输入格式 第一行一个数表示数据组数 每组输入数据共2 ...
- Java实现 蓝桥杯VIP 算法提高 change
算法提高 change 时间限制:1.0s 内存限制:256.0MB 问题描述 数组A中共有n个元素,初始全为0.你可以对数组进行两种操作:1.将数组中的一个元素加1:2.将数组中所有元素乘2.求将数 ...
- Linux帮助命令man详解
命令man详解 命令man,可以获得命令(使用whatis命令可以得到一个命令的简短介绍,可以使用:命令 --help 来获得命令的选项说明)或配置文件的帮助信息(可以使用apropos命令仅查看配置 ...
- Spring事务的传播属性
前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为.事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为.这是Spring ...
- PHP 安装 XDebug
下载XDebug扩展 下载对应PHP版本的Xdebug 线程安全(TS)和非线程安全(NTS) 安装Xdebug扩展-php.ini [XDebug] xdebug.profiler_output_d ...
- Java中的堆和栈
Java中的堆和栈 栈内存 存放基本数据类型和引用变量 堆内存 存放运行时创建的对象 一般来说,通过new关键字创建出来的对象都放在堆内存中 由于JVM是基于堆栈的虚拟机,而每个Java程序都运行在一 ...
- mysqldump导出数据库
问题描述:要将一个mysql中六个数据库导出来,使用mysqldump导出 mysqldump使用语法:mysqldump -uroot -p -S /data/mysql/db_itax_m/mys ...