写代码要用 Vim,因为越难入门的工具回 越大

我就是Vim“神教”的信徒之一。现在我也要来安利一下。但是,我只是用Vim为例子,我要安利的不单是这款软件,而是各种“难用”的技术工具。

现在技术界有一股潮流,工具好不好,似乎都取决于是否易用。照这样的思维,最好的软件就是无需说明书,无需解释,无需教程,你只需要按1或者0。简单到这种地步,五岁的娃娃也可以很快上手应用自如了。

这样的标准听起来很理想, 但是“简单”不是没有代价的,而且五岁孩子可不聪明,简单易用的工具,可想而知,肯定不是灵活的。如果一款软件将所有操作都简化成一个按钮,那么这个按钮在设计的时候,就需要对用户的操作做出很多假设。如果这些假设不符合你的具体情况的话,只能算你运气不好。

举一个很明显的例子。智能手机和笔记本电脑就有很大的不同。在智能手机的应用里,比如Whatsapp,长按链接就会复制链接。那么,这个操作背后的假设就是——Whatapps的开发者想的是,如果用户长按链接,他们可能是想复制链接。但是事实可不一定如此。或许我长按是想分享链接到其他应用呢?或者我只想复制链接中的一部分内容,还有可能我是想将链接保存到稍后阅读清单里。这些操作在笔记本上都很简单,但是在手机上,有时反而很麻烦。

问题就在于开发者觉得“易用”的设计,他们想象中的用户需求,以及用户真正的需求不总是吻合的。用户长按文本可能是想分享,怎么就复制了呢?Word也是如此,又是它总是自动缩进,改都改不了。如果软件开发者总是习惯于帮用户做决定,根据自己的假设来设计软件或应用的功能,这样的不匹配只会越来越普遍。

这也是复杂工具的优势所在。与其想办法、花时间找最简单易使用的工具,倒不如花点时间掌握最强大的工具,然后精准地实现自己想要的操作。

Vim是什么?为什么那么难用?

但是Vim的操作没这么简单。你用Vim输入文本的时候,敲了键盘,字母不一定会出现在键盘上。

Vim里使用的命令很多都很简单,但是语法很强大,有动词、名词和修饰词。字母d代表“删除(delete)”,w代表“单词(word)”。如果你键入dw,就可以删除一个单词(delete a word)。你可以加上修饰词,比如数字5, 键入d5w就能删除光标后的5个字。如果你操作失误,可以按下u来撤销(undo),然后键入i来进入输入模式(insert),做正常的文本输入。y代表的是“yank”(拉),用于复制,yw就可以复制一个单字。

实际使用起来如下图。

通过这样的语法,用户可以组合出无数种命令,实现具体且非常复杂的操作。在不熟悉的人看来,这些操作可能很炫酷。只要敲几个键,你就能把好几句话从一段移到另一段;从光标处把下一个句 前的内容一下删除,然后重写句子;两个单字换位置;两段合为一段,等等。完全不用碰鼠标就能实现很多此类操作。

学会使用难入门的工具有什么好处?

“洞穴隐喻”——设想有这样一个大洞,通过一个长长的通道与外部世界相连,整个通道能够挡住任何阳光进入洞内。一组囚徒背对着出口,面向远处的墙壁。他们的四肢被套上了枷锁,并且他们的头颈也被固定住,无法转动,因此看不到他人,实际上也看不到自己身体的任何部分,而只能够看到面前的墙壁。他们在如此的环境下终其一生,不知道其他任何东西。在洞穴中,他们身后有一把明火。他们不知道自己和明火之间隔着与人一般高的土墙,在墙的另一边,人们头顶东西走来走去,东西的影子被火光投射到囚徒面前的墙壁上,人们的嘈杂声也回响到墙壁那边囚徒们的耳朵里。柏拉图说,这样一来,囚徒们一生中所感觉或经验到的唯一实在就是这些影子和回声。在此情况下,他们自然而然地会以为这些影子和回声成了全部的现实,他们能够谈论的,就是这种“现实”以及对这种“现实”的经验。

这么说似乎消极了点,但是事实确实如此。掌握了Vim之后, 不断是在写代码,还是在用文字表达自己的时候,感觉都更自如,更得心应手。

找到你自己的想法

现在新兴的易用型软件,有很多会降低我们的工作/学习效率。简单的工具一般会自带假设,中断使用者的思考过程,为了使用的流畅,牺牲的是效率的最优化。而让大家退避三舍的难用工具Vim,熟悉之后却能让我更自如地表达自己,降低了实现自己脑中所想操作和实际操作之间的阻力。我可以快速写出自己脑中文本的几个版本,非常灵活。如果我不喜欢Vim现有的操作,我可以增加其他用户做的特征,或删去自己不喜欢的功能,或者花点时间做出最适合自己的工具包。其实也不是这么难,你可以看看科学作家迪希特(Jay Dixit)的这个演讲,他也没有编程经验,但是他根据自己的工作习惯和节奏,把Vim的对手工具,Emacs定制成最适合自己的版本。

所以,我们可以尝试接受复杂的工具:如果能学R语言或者Python,为何执迷于Excel?如果能用自制的Anki卡片,为什么要买做好的记忆卡片?我们不应该指望软件帮我们把事情通通完成,而是应该充分应用自己的大脑。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年8月15日
下一篇 2018年8月15日

相关推荐