GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!

GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!

作者:JackTian
微信公众号:杰哥的IT之旅(ID:Jake_Internet)

Vim对程序员来说,都不陌生。那究竟有没有什么方法可以更高效的学习 Vim 呢?肯定是有。那么,今天就跟大家介绍一款开源项目:PacVim

PacVim 是什么?
PacVim是一个让你通过玩游戏学习 Vim 命令的游戏,你只需要移动pacman 绿色光标来突出显示游戏板上的每个单词,同时避免出现红色障碍物。PacVim 来自 Github 开发者:Jamal Moon,为了帮助自己学习 VIM,让学习变的更加轻松,因此也就开发出了这款游戏。

GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!

开发者 Jamal Moon
PacVim 建立的目的
VIM 是编辑代码的好工具,但包括Jamal Moon在内的许多人都在艰难的学习中挣扎,同时也并没有找到一种有趣的方法来深入了解 VIM 命令,因此 PacVim 这款游戏就诞生了。受经典 PacMan 的启发,它将给任何人以 VIM 命令进行大量练习的同时,还给大家带来了很多乐趣。

下载并安装 PacVim

Mac OS X

PacVim 已经编译为 HomeBrew 包,如果你是 mac 用户,可执行如下命令进行安装。


$ brew install pacvim

Linux

下载,编译和安装 GNU ncurses(图形库)

GNU ncurses 是提供 API 的编程库,允许程序员以与终端无关的方式编写文本用户界面。

以 Ubuntu 为例,可在终端中执行命令:


$ sudo apt-get install libncurses5-dev 

或通过源码包的方式解压,编译,安装;(源码包版本下载地址:http://ftp.gnu.org/pub/gnu/ncurses/


$ wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz
$ tar xzf ncurses-5.7.tar.gz
$ cd ncurses-5.7
$ ./configure --prefix=/opt/ncurses
$ make && make install
$ ls -la /opt/ncurses

或者通过 git 的方式进行安装;


# git clone https://github.com/jmoon018/PacVim.git
正克隆到 'PacVim'...
remote: Enumerating objects: 627, done.
remote: Total 627 (delta 0), reused 0 (delta 0), pack-reused 627
接收对象中: 100% (627/627), 3.20 MiB | 22.00 KiB/s, 完成.
处理 delta 中: 100% (341/341), 完成.
# cd PacVim
# ls
COPYING  COPYING.LESSER  Dockerfile  gifs  Makefile  maps  README.md  src
# make install
g++ -std=c++11 -DMAPS_LOCATION='"/usr/local/share/pacvim-maps"' -pthread   -c -o src/avatar.o src/avatar.cpp
g++ -std=c++11 -DMAPS_LOCATION='"/usr/local/share/pacvim-maps"' -pthread   -c -o src/ghost1.o src/ghost1.cpp
g++ -std=c++11 -DMAPS_LOCATION='"/usr/local/share/pacvim-maps"' -pthread   -c -o src/helperFns.o src/helperFns.cpp
g++ -std=c++11 -DMAPS_LOCATION='"/usr/local/share/pacvim-maps"' -pthread   -c -o src/game.o src/game.cpp
g++ -std=c++11 -DMAPS_LOCATION='"/usr/local/share/pacvim-maps"' -pthread   -c -o src/globals.o src/globals.cpp
g++ -std=c++11 -DMAPS_LOCATION='"/usr/local/share/pacvim-maps"' -pthread  src/avatar.o src/ghost1.o src/helperFns.o src/game.o src/globals.o -o pacvim -lncurses -lpthread
install -Dm755 pacvim /usr/local/bin/pacvim
install -d /usr/local/share/pacvim-maps
install -t /usr/local/share/pacvim-maps maps/map0.txt maps/map1.txt maps/map5.txt maps/map7.txt maps/map2.txt maps/map9.txt maps/map6.txt maps/map3.txt maps/map4.txt maps/map8.txt

使用 Docker

也可以使用Docker 镜像来运行,直接执行如下代码,就可以启动 PacVim 游戏了。

# docker run -it freedomben/pacvim [LEVEL_NUMBER] [MODE]

LEVEL_NUMBER 取值范围为 0-9,数字越大,难度越高。

MODE 可选 N 或 H,N 表示 Normal(正常难度);H 则表示 Hard(困难)。

PacVim 怎么玩?

如果你是在 Ubuntu 环境下安装的PacVim,可直接执行如下命令进行启动游戏。


$ pacvim 8 n

PacVim 的目标与 PacMan 相似,必须在终端下启动PacVim 游戏,并在屏幕上运行所有字符,同时避免出现红色G的障碍。

PacVim 有两个特殊的障碍:

1、不能进入墙壁(黄色),需必须使用 vim 指定命令进行跳过它们。

2、如果踩波浪号字符(cyan ~),则会输掉!
GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!

PacVim 地图文件
PacVim 的地图文件是从/usr/local/share/pacvim-maps文件夹中的文本文件加载的,安装完成后,可以调用来使用maps文件夹make MAPDIR=maps。

每个文本文件的名称都是采用map#.txt的格式,其中#代表数字,例如0、1、9、14等;并确保在GLOBALS.CPP中更改了NUM_OF_LEVELS个,否则将无法加载新的地图,等于最高的地图编号。

在地图文本文件中,墙壁用&符号表示#,而波浪号用~表示,必须限制地图的边界并使其封闭。

PacVim 游戏示意图
获胜条件:使用vim命令将光标移至字母上方并突出显示,在所有字母显示后,将赢得并进入下一关。

失败条件:如果触碰到障碍物(红色G)或波浪号字符,将会失败。如果您的生命少于0,则会输掉整个游戏。

GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!

PacVim 项目地址

如果大家对这个项目感兴趣并想通过这个项目学习巩固一下 Vim 知识,可以去体验一下。

Github 地址:https://github.com/jmoon018/PacVim

猜你喜欢

转载自blog.51cto.com/15067236/2605041