《VIM-Adventures攻略》前言
本文已转至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编辑器一些自身的特性。
敬请期待~
抽奖活动详情
用户需要达成以下两个要求即可获得抽奖资格:
- 在本系列文章中留言;
- 关注博主。
(如果可能的话再推荐本系列任一文章,不胜感激。)
抽奖将在本系列文章连载结束后进行,届时将通过博客园站内信通知获奖用户。
《VIM-Adventures攻略》前言的更多相关文章
- Python数据分析与挖掘所需的Pandas常用知识
Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...
- 10个步骤教你如何安装Anaconda安装,Python数据分析入门必看
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小白 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
- Python数据分析——numpy基础简介
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:基因学苑 NumPy(Numerical Python的简称)是高性 ...
- 《谁说菜鸟不会数据分析》高清PDF全彩版|百度网盘免费下载|Python数据分析
<谁说菜鸟不会数据分析>高清PDF全彩版|百度网盘免费下载|Python数据分析 提取码:p7uo 内容简介 <谁说菜鸟不会数据分析(全彩)>内容简介:很多人看到数据分析就望而 ...
- 《Python金融大数据分析》高清PDF版|百度网盘免费下载|Python数据分析
<Python金融大数据分析>高清PDF版|百度网盘免费下载|Python数据分析 提取码:mfku 内容简介 唯一一本详细讲解使用Python分析处理金融大数据的专业图书:金融应用开发领 ...
- [Python数据分析]新股破板买入,赚钱几率如何?
这是本人一直比较好奇的问题,网上没搜到,最近在看python数据分析,正好自己动手做一下试试.作者对于python是零基础,需要从头学起. 在写本文时,作者也没有完成这个小分析目标,边学边做吧. == ...
- 【Python数据分析】Python3多线程并发网络爬虫-以豆瓣图书Top250为例
基于上两篇文章的工作 [Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 [Python数据分析]Python3操作Excel(二) 一些问题的解决与优化 已经正确地实现 ...
- 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化
继上一篇[Python数据分析]Python3操作Excel-以豆瓣图书Top250为例 对豆瓣图书Top250进行爬取以后,鉴于还有一些问题没有解决,所以进行了进一步的交流讨论,这期间得到了一只尼玛 ...
- 【搬砖】【Python数据分析】Pycharm中plot绘图不能显示出来
最近在看<Python数据分析>这本书,而自己写代码一直用的是Pycharm,在练习的时候就碰到了plot()绘图不能显示出来的问题.网上翻了一下找到知乎上一篇回答,试了一下好像不行,而且 ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
随机推荐
- linux开源论坛
开源资源: 开源http://oss.org.cn/?action-news http://www.lupaworld.com/proj.php http://www.10pig.cn/linux/o ...
- cxgrid按条件计算合计值 TcxTreeList计算合计值
在Footer的第一列显示[合计:] 加一个Summary项,Column设为Grid的第一列,Kind设为skNone 在该Summary项的OnGetText事件中,输入: procedure T ...
- AsyncTask和Handler的优缺点比较
AsyncTask实现的原理和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口 ...
- php防sql注入、xss
php自带的几个防止sql注入的函数http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0318/12234.html addslashe ...
- HRBUST 1987 逃课的孩子
Sol:HASH + 二分 字符串处理,很基础的操作. 题意很明确就是找重复的次数统计下,范围比较大1≤n≤10000,1≤m≤10000. #include <cstdio> #inc ...
- asp.net mvc cooike 购物车 如何实现
先上代码: 1. ShoppingCartService 类 using System; using System.Collections.Generic; using System.Linq; us ...
- hadoop部署工具与配置工具
https://github.com/xianglei/phpHiveAdmin 随着Hadoop的推出,大数据处理实现了技术上的落地.但是对于一般的公司和开发者而言,Hadoop依旧是一个陌生或者难 ...
- Linux学习笔记01:Linux下的drwxr-xr-x
1. drwxr-xr-x 第1字母:表示文件类型 d ------- 表示文件目录(directory) - ------- 表示二进制文件 l ------ ...
- .net对文件的操作之文件读写
读写文件的步骤一般需要5步: 创建文件流 创建读写器 执行读或写的操作 关闭读写器 关闭文件流 需要引用:System.IO这个命名空间 代码演示: string path = @"F:\a ...
- 递归生成树对象,应用于Easyui,Tree控件
1.生成树节点对象 /// <summary> /// 生成树的节点 /// </summary> public class TreeNode { public TreeNod ...