GitHub 標星 2.5K+!教你經過玩遊戲的方式學習 VIM!

GitHub 標星 2.5K+!教你經過玩遊戲的方式學習 VIM!

做者:JackTian
微信公衆號:傑哥的IT之旅(ID:Jake_Internet)c++

Vim對程序員來講,都不陌生。那究竟有沒有什麼方法能夠更高效的學習 Vim 呢?確定是有。那麼,今天就跟你們介紹一款開源項目:PacVimgit

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 Xgithub

PacVim 已經編譯爲 HomeBrew 包,若是你是 mac 用戶,可執行以下命令進行安裝。docker

$ brew install pacvim

Linux編程

下載,編譯和安裝 GNU ncurses(圖形庫)vim

GNU ncurses 是提供 API 的編程庫,容許程序員以與終端無關的方式編寫文本用戶界面。微信

以 Ubuntu 爲例,可在終端中執行命令:dom

$ sudo apt-get install libncurses5-dev

或經過源碼包的方式解壓,編譯,安裝;(源碼包版本下載地址:http://ftp.gnu.org/pub/gnu/ncurses/ide

$ 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 有兩個特殊的障礙:

一、不能進入牆壁(黃色),需必須使用 vim 指定命令進行跳過它們。

二、若是踩波浪號字符(cyan ~),則會輸掉!
GitHub 標星 2.5K+!教你經過玩遊戲的方式學習 VIM!

PacVim 地圖文件
PacVim 的地圖文件是從/usr/local/share/pacvim-maps文件夾中的文本文件加載的,安裝完成後,能夠調用來使用maps文件夾make MAPDIR=maps。

每一個文本文件的名稱都是採用map#.txt的格式,其中#表明數字,例如0、一、九、14等;並確保在GLOBALS.CPP中更改了NUM_OF_LEVELS個,不然將沒法加載新的地圖,等於最高的地圖編號。

在地圖文本文件中,牆壁用&符號表示#,而波浪號用~表示,必須限制地圖的邊界並使其封閉。

PacVim 遊戲示意圖
獲勝條件:使用vim命令將光標移至字母上方並突出顯示,在全部字母顯示後,將贏得並進入下一關。

失敗條件:若是觸碰到障礙物(紅色G)或波浪號字符,將會失敗。若是您的生命少於0,則會輸掉整個遊戲。

GitHub 標星 2.5K+!教你經過玩遊戲的方式學習 VIM!

PacVim 項目地址

若是你們對這個項目感興趣並想經過這個項目學習鞏固一下 Vim 知識,能夠去體驗一下。

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

相關文章
相關標籤/搜索