寓教于乐!一款游戏让你成为 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游戏这几年的发展真的是件好事.随着浏览器平台的日趋成熟,并开始整合这类型游戏所 要求的技术,我们每天都能在各大应用商店和社交网站中看到越来越 ...
随机推荐
- async/await 内幕【译文】
C# Under the Hood: async/await 原文地址:https://www.markopapic.com/csharp-under-the-hood-async-await/ 前言 ...
- vue-cli4配置文件别名
具体步骤如下: 1.在项目中新建vue.config.js文件 注意:此文件要与src文件夹同级 : 修改此文件后,需要重启项目 2.在vue.config.js文件中配置如截图 第一个参数:是你设置 ...
- Rocket - debug - TLDebugModuleInner - DMSTATUS
https://mp.weixin.qq.com/s/GyGriFyeq_7Z3xOjKn56Mg 简单介绍TLDebugModuleInner中DMSTATUS寄存器的实现. 1. DMSTATUS ...
- HashMap1.7和1.8,红黑树原理!
jdk 1.7 概述 HashMap基于Map接口实现,元素以键值对的方式存储,并允许使用null键和null值,但只能有一个键作为null,因为key不允许重复,另外HashMap不能保证放入元素的 ...
- Java实现 LeetCode 336 回文对
336. 回文对 给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串. 示例 1: 输入: ["abc ...
- Java实现 LeetCode 321 拼接最大数
321. 拼接最大数 给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字.现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要 ...
- PAT 旧键盘
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...
- Go 语言入门教程:变量
基础使用 // base.go 注释package main // 包名import "fmt" // 导入 func main() { fmt.Println(" ...
- Java Review (一、Java开发环境)
@ 目录 Java程序运行机制 高级语言运行机制 编译型语言 解释型语言 Java运行机制和JVM 编写 编译 运行 Java开发工具包 JDK JRE JDK.JRE与JVM HelloWord 编 ...
- (一)c++之细解 const 与 static
const成员变量与const成员函数与const对象 static成员变量与static成员函数与static全局变量 const成员变量 1. const用于类中成员变量时,将类成员变为只读属性( ...