键盘与复利

作者: 冯阿良 | 来源:发表于2018-02-13 00:14 被阅读10次

本文主要描述键盘快捷键、Emacs keybindings和Vim mode等带来的效率提升,以及这些提升的意义。

友情声明:我不直接使用Emacs或Vim,我只是使用它们当中我知道和喜欢的部分。

零、前言

每次当你将手从键盘的主区域(广义的Home row keys)移动到方向键,或者改为使用鼠标来点击软件界面时,效率都有所下降。因为:

  1. 移动你的手需要时间;
  2. 移动你的手消耗了你大脑的注意力(判断手到了方向键、鼠标没有);
  3. 移动鼠标、判断鼠标光标是否到达需要的位置同样消耗你大脑的注意力;
  4. 用鼠标点击菜单,需要时间寻找菜单项,消耗了时间。

看到这,相信你也猜到了,本文正是要强调应该节约时间,减少注意力的消耗

一、键盘快捷键

最常见的键盘快捷键是(以Windows系统为例):

Ctrl + C : 复制
Ctrl + V : 粘贴

在复制一个文件时,使用Ctrl + C这比起“将手移动到鼠标,然后再去点击菜单”要快了至少6倍(假设按Ctrl + C需要0.3秒,而后者需要2秒)。

对于程序员来说,除了复制粘贴,还有如下常用的操作:

  • 将光标移动到行尾
  • 复制、删除光标所在的那一行代码
  • 跳到指定行号的那行
  • 切换窗口到上一个或者旁边的Tab
  • 切换到上一个app、指定的app
  • 将选定的一行或者多行代码注释掉
  • 启动构件(Build)
  • ...

时间消耗估算

按粗略估计,假设上述操作平均每次多消耗1秒,每分钟出现2次,一天实质工作6小时,那么一天就多消耗:

1秒 * 2 * 60 * 6 = 720 秒 = 12 分钟

那么一年下来就多消耗:

12分钟 * 22 * 12 = 3168 分钟 = 52.8 小时 ≈ 6.6 工作日

当然,相信大多数程序员或多或少也会记住和使用常见的快捷键,所以真实数据未必有上述估算那么触目惊心。

关于快捷键的建议

关于快捷键,我建议程序员们找到所使用的Editor、IDE或其他软件的快捷键表,逐个试一下,并且复习、练习那些常用但又一下子记不住的快捷键。

如:

二、Emacs Keybindings

简单来说,就是使用Ctrl + P / N / B / V分别代替了方向键的上下左右——一下子为右手减少了至少12厘米的行程。

这在macOS中是默认开启的,即意味着所有Editor、IDE中甚至输入框控件中都可以使用。而Ubuntu Linux上则需要手工操作一下(详见:Emacs-like keybindings system-wide?)。至于Windows,我就没有研究过了。

当然,这当中还有其他一些有用的组合键:

按键 效果
Ctrl + A 移到行首(段首)
Ctrl + B 左移
Ctrl + D 向右删除
Ctrl + E 移到行尾(段尾)
Ctrl + F 右移
Ctrl + H 向左删除
Ctrl + K 向右删除至行尾(段尾)
Ctrl + N 下移
Ctrl + O 光标后插入新行(注:有别于回车)
Ctrl + P 上移
Ctrl + T 交换光标旁边的两个字符
Ctrl + V 类似Page Down
Ctrl + Y 粘贴先前由 Ctrl + K 删除的文本

(注:我没有学习过Emacs,只是知道上述组合键)

三、Vim Mode

小测试

请先自我测试一下,以下场景你是不是通过Home、End或者方向键等方式来实现的呢:

  1. 光标在行首,需要将其移动到第4个单词尾部
  2. 光标在行首,需要将其移动到第一个左小括号的位置之后,以便输入新文本
  3. 将光标移动到所在单词的下一次出现的位置(例如,在switch单词上,移动到下一个switch中)
  4. 想将当前行代码重复4次,以便作微小修改 (field1, field2, field3之类)
  5. 想删除3行代码

如果用Vim mode的话,很容易就达到了。按键分别如下:

  1. 3w e (3次按键)
  2. f ( a (3次按键)
  3. * (1次按键,无论两个单词间相隔多少行)
  4. yy 3p (4次按键,仅包含复制粘贴,未包含修改动作)
  5. 3dd (3次按键)

Vim mode的优点

它真正的优点,在你没有亲身体验之前,是很难向你言传的。只能概括如下:

对于同样的操作,它减少按键的次数、操作的时间,减少了大脑用于判断光标移动位置等的分神、消耗,最终大大地提高了效率。

如果你等不急的话,先看看这个教程中的动画演示吧:

我的Vim mode之路

对于Vim mode,我颇有相见恨晚的感触。曲折经历如下:

  • 2001年学习Linux时学过Vim(或称Vi),当时只是记住了有Normal mode、Insert mode之类的区别、HJKL是使用光标的、推出时颇为麻烦;(听说有人为了推出Vim,不惜使用Ctrl+Z,然后kill掉Vim)
  • 2006年有同事给我演示GVim(Vim的Windows版本),当时也没觉得它有什么威力;
  • 直至2015年,有位老同事(真的“老”,他生于五十年代)在吃饭之余给我演示Chrome浏览器中如何使用Vimium这个插件做到看网页不用鼠标——正是这实实在在的演示打动了我,令我痛下决心去学习Vim mode——学习了之后才发现,不少Editor、IDE支持Vim mode。

Vim教程

鉴于我的经历,这里我也就给你搬运一下带有演示的Vim教程,希望它们能给你带来足够的震撼和学习动力:

另外也推荐看看“酷壳 CoolShell”上的Vim系列文章

支持Vim Mode的软件

很多软件都有支持Vim mode的插件,甚至原生支持,这也足见其实用程度:

四、上述三者于复利的关系

复利是什么?简单来说,就是1.01的100次方就约等于37.78,即是:微小的增长随着时间的推移而累计,越到后面收益的增长越大,且呈指数式增长。

上文中仅仅是快捷键一项中的估算(强调:是估算),一年就可以节省6.6个工作日了,还没有算上Emacs Keybindings和Vim Mode呢。

如果这势头累计20年……不算下去了,不少人在讨论35岁的程序员何去何从呢。 😊

参考(注,本文目的不是讨论投资、理财):

复利是什么,为什么爱因斯坦说它是宇宙最厉害的东西之一(复利应该属于投资理财)?

五、结语

工欲善其事,必先利其器——鉴于复利的效应,建议立志当个好程序员的朋友尽早实践本文的3点建议。

相关文章

  • 键盘与复利

    本文主要描述键盘快捷键、Emacs keybindings和Vim mode等带来的效率提升,以及这些提升的意义。...

  • 论理财的重要性

    时间与复利的威力

  • 关于复利

    说到复利,所有人第一反应就是利息,与钱相关。也是,复利就是个经济学概念。 我生平第一次尝到复利的甜头,和复利带给我...

  • 1.5独立键盘

    非编码键盘与编码键盘编码键盘 非编码键盘 非编码键盘 有分 独立键盘 和 矩阵键盘 独立键盘 当按下去之后 借口电...

  • 复利定投与复利增长。

    习惯的本质,就是一个复利效应的回路。 复利效应在时间的作用下,最终产生了幂律分布。成败的底层奥秘,便在于此。 因此...

  • 人生的复利效应 目录

    概念与体系 人生的复利效应(一):谈谈正确理解一个概念对成长有多重要 人生的复利效应(二):复利效应的定义 人生的...

  • 概率与复利

    今天想出了一个新的名词“赌徒谬误”。赌徒与庄家最大的区别在于:大者常胜、概率累加。 赌徒与创业者的区别,同样的63...

  • 单利与复利

  • 积累与复利

    复利是一个很咸很神奇的概念,每天都增长1%,那么一年后将是现在的37倍,它不仅仅是一个理财的概念,复利也可以运用在...

  • 自律与复利

    真正的自由是建立在自律基础上的。 克制自己看手机的时间,可以更加专注其他的事情。克制自己不要熬夜,可以提高生命的质...

网友评论

    本文标题:键盘与复利

    本文链接:https://www.haomeiwen.com/subject/xnodtftx.html