ITPub博客

首页 > > > 我的编程生涯(14): Vim和脚本语言的启蒙

我的编程生涯(14): Vim和脚本语言的启蒙

作者:u_453e1a12781dea 时间:2016-02-22 15:14:14 0 删除 编辑
我的编程生涯(14)
Vim和脚本语言的启蒙



按:应Ager的要求,我逐渐地贴出了我曾经走过的路,从一开始的朦胧,到启蒙,到学习和自我学习的过程和那些心中的感情。

这会是一个系列,Ager说会催促我将其完成。那么就从最开始的朦胧开始吧。大家可以就当做小说来看,不过里面我也会将自己的学习过程,以及之后的一些想法加进去。

篇幅比较长一点,不好意思~另外这些文字本身也会 因为大家的反馈做出一些修改。说白了,这就是一个大坑儿,所以谢谢观赏啦~~

回
到了武汉,我又回到了我应该呆着的地方。但,一切都不同了。 仿佛量子效应,仅仅只是和另一半的关系改变,整个世界都开始不一样。 

最显眼的变化自然是短信开始直接变多,电话也是。每天的睡前电话几乎成了标准配置。但是我还是偶尔会忘记给她打电话——是偶尔还是经常?因为,我开始更加努力去学习知识。

大二一直在我心中的那种懒散被我驱散。我开始以极大地热情投入学习。因为我知道,我要为未来担负起责任。我要能找到一份很好的工作,能够养得活她,能够攒足结婚的钱。我当时真的想得那么简单。而为了做到这一切,我必须更努力去学习,我必须站在比别人更高的高度。我至少要达到飞燕算法群里面那群得天独厚的大牛们一样的高度。

有时候老师说早恋会影响成绩。我通常嗤之以鼻。因为似乎每次恋爱伴随着我的总是成绩的提高。后来我才知道老师这句话其实是对女生说的。理解到爱情意思的男生会变得更加勤奋,因为他体会到了责任的力量,而体会到了爱情意思的女生则会成绩下滑,因为她们找到了依靠。

所以,男生还是好好恋爱,然后帮助女生复习功课吧。恩,当时的我望着桌上《神农传说和中国古代神话故事起源》的论文题目皱起了眉头——可是,我架不住女友是中文系啊汉语言文学专业啊……

所以我无意中达成了高中某同学的心愿:以后我要找个中文系的女生,她们有气质……气质?恩,这可以有,也的确有。至少这种见面就表白的文人浪漫气质我可做不到。我只会将喜欢默默埋在心里,然后让它发芽成参天大树,变成既成事实以后,再慢慢地显露它的脉络。

恩,反正我找了很多资料,写着中文系的论文,觉得还是蛮开心的。就是数落了她几句让她认真学习。因为专业知识很重要——对我自己而言是这样的。

我开始正式的去学习Windows系统知识了,我总觉得,在Windows SDK之上,应该还有一点别的东西。而且我也开始尝试不同的编辑器——比如 Vim。话说是半年前的飞燕群里面的某人推荐我Vim的,他说他们赛队都用这个。还说这是编程神器,因为用了它输入和编辑速度能提高很多,这样就能加大AC概率。 但是等我安装上以后,它难用的操作,丑陋的外观,缓慢的速度,稀少的功能,无一不让我汗颜。然后让我很快地扔下了它。

我当时自我感觉在编程技术本身上,除了换编辑器,我已经没有什么可以提高的了。想想我小学的时候在课桌上面刻键盘图形,这和鲁迅先生是何其之像啊。所以能在真正拥有电脑后不到一星期就盲打。我已经很熟练地使用了VS的IDE。我想,要有提高,我得先试验一点儿不一样的东西。

事实上Vim是世界上最可怕的毒品。你会不自觉地在任何有编辑器的地方按ESC,特别是聊天窗口,然后你就会眼睁睁的看到聊天窗口消失掉……很显然,我那个时候是不知道的。

新的身份给了我新的勇气。我觉得我现在什么都不害怕。不就是Vim么?有什么难的?没荷尔蒙的人一旦突然爆发斗志,其实真的挺可怕的。

我找到了我能找到的所有教程。这里推荐一个“善用佳软”的“普通人的编辑利器”
,和著名的Vim中文手册pdf文档。我开始慢慢地习惯命令模式的Vim,慢慢习惯输入之前得按i进入输入模式,然后输入完了以后按ESC回到命令模式。其实最开始的时候我是很难记得要返回命令模式的,但是随着按错键的次数增多,我开始慢慢地记住了。

Vim不是一种知识,而只是一种技术,仅仅是能加快你编程的速度而已。而且要付出的是,这个工具很难学习,因为刚开始学的时候要掌握的概念太多:模式、命令等等。而在刚开始用的时候,也会如同用了拐杖一样,会有效降低你的效率。但是在最多一个月以后,使用Vim就会成为一种本能了。

于是,我就在雄性激素的刺激下,攻克了半年未己的Vim了。但,用着的确非常不熟悉,最麻烦的事儿,是我暂时完全没法在Vim里面编译我的源代码。

于是,我开始慢慢地学着在命令行里面去编译我的C代码。因为OJ的原因,我已经用了MinGW(GCC的Windows版本)很久了。突然,所有的环节都达到了——我开始用着命令行,Vim和GCC了。这意味着我其实已经可以在Linux下面工作了~

另一方面,我开始慢慢了解如何用Vim的命令来编程。这是我第一个了解的脚本语言。它和C是那么不一样。

我慢慢换掉了大二的时候自己制作的GCC+EditPlus的那个套装(现在还能在BCCN的下载频道下载到)。开始在Vim里面编写各种各样的脚本。
 
这似乎是一种很不同的思维。不再去寻找一个可以满足你所有需求的软件,而是去找一个能让你在里面编程的软件。一个可以输入命令行,然后按一个键让它执行的东西。这种思路,开始改变了我在软件开发中的看法。

一开始的时候,我希望能写“很完美的程序”,也就是说,程序本身是一个有机的、完美的整体,用一种特别精密的方式去执行。这是我心目中完美的程序,如同钟表一样。

然而,我的想法开始产生了改变。其实,钟表虽然很美,但是“可玩度”并不高。比如说即使你掌握了算法的技巧,你能写出很多能实际解决问题的C程序,但是,遇到问题以后,你依然必须去写C程序。如果,能在遇到问题的时候,我弄用一堆“组件”,组合出我想要的程序,那样该多好?我开始觉得,其实程序并不必须是一个可以被“动态规划”的东西。它不一定是一个各部分都是完美的一个整体,它只需要结构优秀,能够切换各个不同的部分就行。

这样的思想,让我这样“斤斤计较”的人很快地接受了脚本语言这么一个设定。一个从24K内存机器过来的人,必然会斤斤计较地使用哪怕一点一滴的机器资源。但是我突然明白,其实我们不必把对性能的榨取放到程序设计的第一步,程序设计的第一步,应该是设计一个良好的结构,让其中的各个部分都能够很好地被替换。这样,总有一天这个程序本身可以达到一个完美的状态。而在这之前,这个程序已经可以正常工作很久了。因为这个原因,我开始对各种脚本语言都产生了兴趣。我在VimL之外还学习了当时刚刚出现的,还是新东西的Ruby语言。那个时候Ruby的中文资料额外的少,Ruby On Rails还没有得到大规模的应用,Ruby主要是以Perl语言的继任者,作为系统维护语言出现的。因此它有很多功能。我基本上就是在阅读Ruby的英文文档,和Vim的中文用户手册中,度过了暑假中分离的那十多天。

总的来说,突然一下子,我有了很多东西,我的生活开始充满了色彩。我突然好像回到了大一下的时候,天天坐着公汽去找李春园。但,亦然离得更远,使得我无法天天看到她。因此我在与她打电话聊天温感情的额外时间,有了更多的精力去学习,而且也有了学习的激情。我想,如果没有她,我的人生将是另一个样子。

注:本故事版权属ChinaUnix社区用户starwing83所有,转载请注明出处。


(未完待续)



原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-07-17

  • 博文量
    1982
  • 访问量
    17885