Vim一直学不会?试试这个 "真香" 神器
Vim 的使用,一直以来是一个难题
以至于国外的知名程序员问答社区 StackOverFlow 上有一个问题
How to I exit the Vim editor
获得了超过 200万次的浏览量
我们常说,学习是痛苦的,那有没有什么方法可以帮助我们更加轻松的学习 Vim 呢?
答案当然是肯定的。
我们可以通过玩游戏,来学习 Vim 的使用。
PacVim —— 一个让你通过玩游戏学习 Vim 命令的游戏
PacVim 来自 Github 开发者 Jamal Moon ,他为了帮助自己学习 vim,让学习曲线变得更加的平缓,开发出了这款游戏。
用开发者的话说,就是
Vim is a great tool to write and edit code, but many people, including me, struggled with the steep learning curve. I did not find a fun, free way to learn about the vim commands in-depth, and thus, PacVim was born.
Vim 很好,但是包括我,绝大多数的人都很难学会他,我希望找到一个愉快、轻松的方式深入的学习 vim 命令,PacVim 也因此诞生。
PacVim 是什么样的呢?
先看一个动图
在这个游戏中,你是有着蓝色光标的小绿人,逃脱红色自负的怪物 Monster (红色的 G,Ghost,鬼),和经典的吃豆人不同的是, PacVim 中的控制并不是我们习惯上的上下左右,而是 Vim 独有的键位。
PacVim 的键位
如何玩 PacVim ?
想要玩 PacVim ,有很多方式,最简单的是直接使用 Docker 镜像来运行。直接执行如下代码, 就可以启动 PacVim 来玩了
docker run -it freedomben/pacvim [LEVEL_NUMBER] [MODE]
上述代码中的 LEVELNumber 取值范围为 0 - 9,数字越大,难度越高。
Mode 可选 N 或 H,N 表示 Normal ,正常难度;H 则表示 Hard ,困难。
输入一条命令,就可以开始玩了。
如果你是 mac 用户,那你有福了,开发者已经将 PacVim 编译为 HomeBrew 的包,你只需要执行下面的命令,就可以安装了。
brew install pacvim
安装完成以后,执行 pacvim 8 n 这样的命令,就可以开始游戏啦!
Vim一直学不会?试试这个 "真香" 神器的更多相关文章
- 你只会用 StringBuilder?试试 StringJoiner,真香!
你只会用 StringBuilder/ StringBuffer 拼接字符串? 那你就 OUT 了!! 如果需要拼接分隔符的字符串,建议使用 Java 8 中的这款拼接神器:StringJoiner, ...
- 阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!
今天这篇文章介绍一下Seata如何实现TCC事务模式,文章目录如下: 什么是TCC模式? TCC(Try Confirm Cancel)方案是一种应用层面侵入业务的两阶段提交.是目前最火的一种柔性事务 ...
- VSCode六大通用插件真香合集
目录 一.background:设置心水背景图 安利理由: 安装及设置步骤: 设置过程中使用的代码: 成果展示: 注意: 二.Material Theme(VSCode主题)+Material Ico ...
- JavaFX桌面应用-MVC模式开发,“真香”
使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...
- 从Eclipse切换到IDEA工具,哎~真香!
从Eclipse切换到IDEA工具,哎~真香!(图) 个人观点:IDEA工具用了就回不去了!!!对比很多人写,我就不赘述了.我在这里主要介绍一下IDEA工具的一些使用上的技巧,毕竟我开始学习java的 ...
- git 日常使用从入门到真香
目录 git 日常使用从入门到真香 一.Git简介 二.Git常用命令 三.git操作流程 四.报错处理 git 日常使用从入门到真香 一.Git简介 Git是一个开源的分布式版本控制系统,可以有效. ...
- 真香系列之 Golang 升级
Golang 以前的依赖管理一直饱受诟病,社区的方案也层出不穷,比如 vendor, glide, godep 等.之前的依赖管理一直是依靠 GOPATH 或者将依赖代码下载到本地,这种方式都有劣势. ...
- 真香的flex弹性布局
如何实现一个左中右的布局 在flex出现之前 #box{ color: white; } #left{ float: left; width: 30%; background-color: red; ...
- Chladni Figure CodeForces - 1162D (暴力,真香啊~)
Chladni Figure CodeForces - 1162D Inaka has a disc, the circumference of which is nn units. The circ ...
随机推荐
- 制作 PPT 的新方式出现了——GitHub 热点速览 v.21.19
作者:HelloGitHub-小鱼干 想当初 Markdown 的出现,拯救了多少死在 Word 样式调整上的人,现在,slidev 出现了,它让你 Focus 在本该专注的 PPT 内容制作上而不需 ...
- 查看.class文件的工具
1.JDK 提供的 javap -c javap -c test.class 2.将test.class用idea打开.
- If-Else 太多,如何优化!!!
完全不必要的 Else 块 public void consumer(int product) { if (product > 1) { // do something } else { // ...
- 服务治理演进剖析 & Service Mesh、 xDS核心原理梳理
基于XDS协议实现控制面板与数据面板通信分享 基于这段时间在同程艺龙基础架构部的蹲坑,聊一聊微服务治理的核心难点.历史演进.最新动态, 以上内容属自我思考,不代表同程艺龙技术水准.如理解有偏差.理解不 ...
- WPF 使用附加属性声明 ICommand
一.ListBox中为什么选择同一项不能每次都触发SelectionChanged事件呢? 当我需要每次点击ListBox的选中项,都触发事件.找到最符合的事件为SelectionChanged事 ...
- istioctl命令整理
显示配置文件中的差异 istioctl profile diff default demo 显示对应配置的profile istioctl profile dump demo 显示可用的配置 isti ...
- python3.7[列表] 索引切片
python3.7[列表] 索引 切片 排序 #### 列表.sort 永久排序 sorted(列表) 临时排序 ### >>> print(sorted(a))[ ...
- LDAP协议入门
LDAP协议入门(轻型目录访问协议) LDAP简介 轻型目录访问协议,全称:Lightweight Directory Access Protocol,缩写:LDAP,它是基于X.500标准的,但是简 ...
- 018.Python迭代器以及map和reduce函数
一 迭代器 能被next进行调用,并且不断返回下一个值的对象 特征:迭代器会生成惰性序列,它通过计算把值依次的返回,一边循环一边计算而不是一次性得到所有数据 优点:需要数据的时候,一次取一个,可以大大 ...
- otter源码解读(一)
概览 lib存放的是项目依赖包,由于项目用到的包比较杂,可能有的包已经不在maven仓库中提供了,所以提供了一个lib包,执行里面的install命令,就可以把包安装到本地maven仓库. manag ...