本文已转至http://cn.abnerchou.me/2014/03/02/bfdaadb0/

自从有了计算机,人们就想向其灌输自己的想法。

要想对其输入,自然离不开文本编辑器。

公告:《VIM-Adventures》的作者愿意免费赠送一个此游戏的激活码给在本系列攻略中留言的用户。活动详情请见本文末。

最近一直在学习Emacs,这个几乎和我同龄的软件,在发展如此迅速的时代依然有不少程序员的死忠粉,不禁让人诧异。友人常问:“现在既然都有IDE了,还学那么古老的编辑器干什么?” 刚开始我也这么认为,但自从在Linux下写程序后才发现,Linux的IDE是多么的坑了。且不说安装要费老半天劲(apt-get 得到的一般不是最新版本),装好后调试编译环境又是半天,最可气的是,一切都弄好后,突然要换电脑工作,我总不能把硬盘拔了带着吧。而且常用IDE产生了IDE依赖症,甚至不用某个厂商的IDE,就不会写代码了。于是在网上就找到了Emacs,支持自定义化配置,配置文件小巧可随时备份,甚至可以用来煮咖啡。

等等,等等,题目是vim啊,说了半天Emacs是作甚?当然我认识vim比Emacs要早,因为vim是Linux系统自带的vi的进阶版。当时是为了远程修改一些配置文件才不得已学了两下,但发现其不够直观,进入后完全不知道该如何操作。也就了解了下如何插入,修改罢了。

但Emacs欢迎界面就有一个15分钟左右的教程(怎么又扯回Emacs了)。上手难度陡降,但发现越学深入越有东西要学,比如系统配置,eLisp语言,自定义插件等等……一切都还好,但……但……光标的移动有点太……难了吧……C+n下一行,C+p上一行,C+v下一页,M+v上一页,C+f向后,C+b向前(C代表Ctrl,M代表Alt或类似键)……有时只需要光标向后移一下,竟然要按两个键,有点太低效了吧。这时候vim闪亮登场(我是用Emacs下的Evil插件来实现vim控制的),它的控制只需要h,j,k,l,单键即可控制光标移动,有点像上下左右方向键。所以,我觉得有必要结合Emacs和vim来降低其学习曲线了:

常见编辑器的学习曲线<图>

vim的入门难和Emacs的后期变态让人望而生畏。vim入门难,到底难在什么地方呢?难在养成一种习惯,即键盘上26个按键不再是普通的按钮,其还附有了特殊的意义。而且其上下左右键是k,j,h,l,这是多么的蹩脚啊,为啥不向CS学习下设置成w,s,a,d。因为w,s,a,d其本身还有特殊含义。vim的按键已经可以算是最优了,在不触动鼠标的情况下,可以快速完成各种操作,比如dd是删除一行,db是删除前一个单词,dk是向前删除两行等等。以前都是要多次按键,或者用鼠标协作,现在完全可以用键盘快速完成。

有的人用不惯vim的方向键就早早的退出了。其实只要练习,没有什么难的,这里有个简单的贪吃蛇游戏,就是用vim的方向键来控制。在吃的时候要按 i (即vim里的插入功能) 才可以,并且在吃完后按Esc返回键盘控制。我的最高分只有700。 T_T

当然这里要说的VIM-Adventures 不单单用游戏的形式来练习光标控制,还可以通过游戏学习到vim的按键操作。通过其可以学习的操作有:

h j k l : w W e E b B x X r d dd D ~ 0 ^ $ f F t T ; , % z zt zz zb g gg G 1 2 3 4 5 6 7 8 9 count [count] * # n N p P " y yy Y reg :reg registers "" "- "_ "0 "1 "2 "3 "4 "5 "6 "7 "8 "9 "a "b "c ... "x "y "z "A "B "C ... "X "Y "Z i I a A c cc C s S o O word WORD sentence paragraph { } ( ) [{ ]} [( ]) . text-objects aw iw aW iW as is ap ip a[ a] i[ i] a( a) i( i) a< a> aB iB ab ib i< i> at it a{ a} i{ i} a" i" a' i' a` i` H M L nu nonu nu! nonu! | / ? ` ' m :marks :delm :delmarks :delm! :delmarks! undo u :undo CTRL-R :redo redo

在其后的章节,我将详细讲解其每一关的攻略。因为我发现本游戏不光需要知道vim的操作,还有一定的解谜成分。并通过游戏本身了解到vim编辑器一些自身的特性。

敬请期待~

LEVEL 1-3

LEVEL 4 5

抽奖活动详情

用户需要达成以下两个要求即可获得抽奖资格:

  1. 在本系列文章中留言;
  2. 关注博主。

(如果可能的话再推荐本系列任一文章,不胜感激。)

抽奖将在本系列文章连载结束后进行,届时将通过博客园站内信通知获奖用户。

《VIM-Adventures攻略》前言的更多相关文章

  1. Python数据分析与挖掘所需的Pandas常用知识

    Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...

  2. 10个步骤教你如何安装Anaconda安装,Python数据分析入门必看

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...

  3. Python数据分析——numpy基础简介

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:基因学苑 NumPy(Numerical Python的简称)是高性 ...

  4. 《谁说菜鸟不会数据分析》高清PDF全彩版|百度网盘免费下载|Python数据分析

    <谁说菜鸟不会数据分析>高清PDF全彩版|百度网盘免费下载|Python数据分析 提取码:p7uo 内容简介 <谁说菜鸟不会数据分析(全彩)>内容简介:很多人看到数据分析就望而 ...

  5. 《Python金融大数据分析》高清PDF版|百度网盘免费下载|Python数据分析

    <Python金融大数据分析>高清PDF版|百度网盘免费下载|Python数据分析 提取码:mfku 内容简介 唯一一本详细讲解使用Python分析处理金融大数据的专业图书:金融应用开发领 ...

  6. [Python数据分析]新股破板买入,赚钱几率如何?

    这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. == ...

  7. 【Python数据分析】Python3多线程并发网络爬虫-以豆瓣图书Top250为例

    基于上两篇文章的工作 [Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 [Python数据分析]Python3操作Excel(二) 一些问题的解决与优化 已经正确地实现 ...

  8. 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化

    继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...

  9. 【搬砖】【Python数据分析】Pycharm中plot绘图不能显示出来

    最近在看<Python数据分析>这本书,而自己写代码一直用的是Pycharm,在练习的时候就碰到了plot()绘图不能显示出来的问题.网上翻了一下找到知乎上一篇回答,试了一下好像不行,而且 ...

  10. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

随机推荐

  1. Web前端开发

    由于互联网的各种兴起,网页开发似乎也火了,催生了github上各种js的轮子,各种重复,各种框架和库,什么Jquery,bootstrap等等.面对这么多框架和库我们在工程上该如何取舍(trade-o ...

  2. BZOJ2079: [Poi2010]Guilds

    2079: [Poi2010]Guilds Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 237  Solved: 181[Submit][Statu ...

  3. delphi TCXTreelist 通过代码控制行的可编辑性

    procedure TfrmSetOutPzTradeDeptPerson.grdTradeClientEditing(Sender: TObject;  AColumn: TcxTreeListCo ...

  4. 型牌男装施春蕾:分拆让马云对淘宝定位更清晰--互联网 -- CCTIME飞象网

    型牌男装施春蕾:分拆让马云对淘宝定位更清晰--互联网 -- CCTIME飞象网 型牌男装施春蕾:分拆让马云对淘宝定位更清晰          2011年6月17日 13:16  CCTIME飞象网   ...

  5. prototype对象的真正作用

    参考阮一峰的文章:http://javascript.ruanyifeng.com/oop/encapsulation.html prototype对象的真正作用 在JavaScript语言中,每一个 ...

  6. 最最常用的 100 个 Java 类(转)

    大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库.每个类在同一个 ...

  7. (转)关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi

    首先是几个基本概念:1.屏幕尺寸Screen size即显示屏幕的实际大小,按照屏幕的对角线进行测量.为简单起见,Android把所有的屏幕大小分为四种尺寸:小,普通,大,超大(分别对应:small, ...

  8. String 和 InputStream 互转方式

    /** * 利用BufferedReader实现Inputstream转换成String <功能详细描述> * * @param in * @return String */ public ...

  9. js比较两个日期大小

    //比较两个日期大小 function dateCompare(startDate,endDate){ var aStart=startDate.split('-'); //转成成数组,分别为年,月, ...

  10. [AngularJS] Using AngularJS's ngClass

    .blue{ color: blue } .bold{ font-weight: bold; } .large{ font-size: 40px; } ngClass can accept an ar ...