对于学习Linux的新手来说,无疑都是被Vim编辑器折磨过的人。Vim编辑器指令总多且复杂,学习、记忆起来非常困难。
在入门学习的过程中,我发现了一款由Vim编辑器的指令构成的一款小游戏(PacVim)。游戏内容:躲避怪物(G),吃完豆豆。当你对玩这个游戏无比流畅时,相信你的Vim水平得到了很大的提升。
安装ncurses库
sudo apt-get install ncurses
安装PacVim游戏
这款游戏源码托管在GitHub上,只需下载后编译安装即可。
git clone https://github.com/jmoon018/PacVim.git
进入下载目录并安装
cd PacVim
sudo make install
到这里安装就完成了。
游戏规则:
你必须跑过屏幕上所有的字符,同时避免鬼魂(红色字符),障碍:黄色竖线是墙壁不可移动,可以命令行实现跳转。如果踩到波浪符(青色的 ~),游戏结束!
获胜条件:
使用 vim 命令将光标移动到字母上,当所有字母都高亮(变绿)显示后,你就会获胜并进入下一关。
失败条件:
如果你碰到鬼魂(用红色 G 表示)或者波浪字符,你就会失去一条命。如果命小于 0 条,游戏结束!
启动游戏:pacvim [LEVEL_NUMER] [MODE](LEVEL_NUMER:表示关卡号 ;MODE:表示难度,n - 正式模式,h - 困难模式)
重头开始:pacvim
选择关卡:pacvim 5 n(h)
退出游戏:按下ESC或q键
命令 | 作用 | 命令 | 作用 |
---|---|---|---|
h | 左移 | w | 移到下一个单词的开始 |
j | 下移 | W | 移到上一个单词的开始 |
k | 上移 | e | 移到下一个单词的结尾 |
l | 右移 | E | 移到上一个单词的结尾 |
b | 移到下一个单词 | B | 移到上一个单词 |
$ | 移到行尾 | 0 | 移到行首 |
gg/1G | 移到第一行的开始 | n G | 移到n行的开始 |
^ | 移到当前行的第一个单词 | & | 直接进入下一关 |
PacVim游戏可以有效增强对vim命令行的记忆。
本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873又是一个新的系列了,不过这个系列和我们之前的Chapter系列是及其相似的,但是不过呢,Chapter主要演示了如何使用C++创建具有可视性的类型以扩展我们的QML,而这个系列则关注于如何使用C++扩展QML非可视化的内容。这里第一个小例子
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------今天刚学完IO流,下面整理一下我的学习笔记。 ①根据处理数据的数据类型的不同可以分为:字节流(抽象基类为InPutStream和OutPutStream)和字符流(抽象基类为Reader和Writer)。 注意:由这四个类派生出来的子类名称都是以其父类名作
AS完全手册目录第一章: AS概述 第一节: 几个基本概念 强直性脊柱炎 血清阴性脊椎关节病变 强直性脊柱炎的流行病学 强直性脊椎炎的病理变化 第二节: AS的病因和临床症状和诊断标准 强直性脊柱炎的病因 强直性脊柱炎的临床症
voidclear]()从此映射中移除所有映射关系。Objectclone()返回此HashMap实例的浅表副本:并不复制键和值本身。boolean如果此映射包含对于指定键的映射关系,则返回true。boolean如果此映射将一个或多个键映射到指定值,则返回true。entrySet()返回此映射所包含的映射关系的Set视图。V返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回null。booleanisEmpty()如果此映射不包含键-值映射关系,则返回true。
技巧1.1 在空白行上按Ctrl+C不会丢失剪贴板的内容工具→选项→文本编辑器→所有语言→常规→没有选定内容时对空行应用剪切或复制命令技巧1.2 循环使用剪贴板Ctrl+Shift+V技巧1.3 插入空行使用Ctrl+Enter在上方插入一行,使用Ctrl+Shift+Enter在下方插入一行技巧1.4 选择当
脚本编写基础变量和参数变量替换变量的名字是它的值保存的地方。引用它的值称为变量替换。如果varible1是一个变量,那么$varible1就是引用该变量的值,即这个变量包含的数据。解释:$为变量替换符,表示引用该变量的内容。变量赋值用“=”对变量进行赋值,“=”的左右两边不能有空白符。bash变量无类型不同于许多其他编程语言,bash不以“类型”区分变量。本质上说,...
#include<iostream>using namespace std;#include<bits/stdc++.h>#include<ctime>int main(){ srand((unsigned int)time(NULL)); int num = rand()%100+1; int val=0; cin>>val; while(1) {...
打开一个APP,经常会看到精美的启动页,这种启动页也称为闪屏动画。它是从无到有有一个透明度的渐变动画的。图像展示完事后,才跳转到用户可操作的页面。AnimationControllerAnimationController是Animation的一个子类,它可以控制Animation, 也就是说它是来控制动画的,比如说控制动画的执行时间。我们这里有了两个参数 :vsync:thi...
滚动视图(ScrollView)控件用于显示比它大的控件的部分内容。滚动视图拥有两个Rect,一个定义了滚动视图自身的大小和位置,另一个定义了滚动视图可显示的控件(Content)的大小。如果可显示的控件的大小大于滚动视图的大小,则滚动条(Scrollbar)会出现。 ScrollRect 滚动视图有一个名为滚动矩形(ScrollRect)的组件,滚动矩形有以...
转载自http://www.elecfans.com/kongzhijishu/jiqishijue/603799_a.html1:工业相机的丢帧的问题是由什么原因引起的?经常会有一些机器视觉工程师认为USB接口的工业相机会造成丢帧现象。一般而言,工业相机丢帧与工业相机所采用的传输接口是没有关系的,无论是USB,还是1394、GigE、或者是CameraLink。设计不良的驱动程序或工业相机硬件才...
Docker Selenium能讓Selenium在Docker中運行,可加速建置時間及獨立出各瀏覽器的版本,保持了一定的隔離性,是非常好的測試環境。docker-selenium 官方文檔鏡像介紹selenium/hub: Grid Hub,相當於一個空白的Seleniun Server,selenium/node-chrome: Chrome節點,需加入Grid Hub才能使用。selenium/node-firefox: Firefox節點,需加入Grid Hub才能使用。sele
一、对空洞(扩张)卷积的理解空洞卷积:首先是诞生背景,在图像分割领域,图像输入到CNN(典型的网络比如FCN)中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始的图像尺寸进行预测(upsampling一般采用deconv反卷积操作),之前的po...