鍵盤與復(fù)利

本文主要描述鍵盤快捷鍵柱徙、Emacs keybindings和Vim mode等帶來的效率提升,以及這些提升的意義奇昙。

友情聲明:我不直接使用Emacs或Vim护侮,我只是使用它們當(dāng)中我知道和喜歡的部分。

零储耐、前言

每次當(dāng)你將手從鍵盤的主區(qū)域(廣義的Home row keys)移動(dòng)到方向鍵羊初,或者改為使用鼠標(biāo)來點(diǎn)擊軟件界面時(shí),效率都有所下降什湘。因?yàn)椋?/p>

  1. 移動(dòng)你的手需要時(shí)間长赞;
  2. 移動(dòng)你的手消耗了你大腦的注意力(判斷手到了方向鍵、鼠標(biāo)沒有)闽撤;
  3. 移動(dòng)鼠標(biāo)得哆、判斷鼠標(biāo)光標(biāo)是否到達(dá)需要的位置同樣消耗你大腦的注意力;
  4. 用鼠標(biāo)點(diǎn)擊菜單哟旗,需要時(shí)間尋找菜單項(xiàng)贩据,消耗了時(shí)間。

看到這闸餐,相信你也猜到了饱亮,本文正是要強(qiáng)調(diào)應(yīng)該節(jié)約時(shí)間,減少注意力的消耗绎巨。

一近尚、鍵盤快捷鍵

最常見的鍵盤快捷鍵是(以Windows系統(tǒng)為例):

Ctrl + C : 復(fù)制
Ctrl + V : 粘貼

在復(fù)制一個(gè)文件時(shí),使用Ctrl + C這比起“將手移動(dòng)到鼠標(biāo)场勤,然后再去點(diǎn)擊菜單”要快了至少6倍(假設(shè)按Ctrl + C需要0.3秒戈锻,而后者需要2秒)。

對(duì)于程序員來說和媳,除了復(fù)制粘貼格遭,還有如下常用的操作:

  • 將光標(biāo)移動(dòng)到行尾
  • 復(fù)制、刪除光標(biāo)所在的那一行代碼
  • 跳到指定行號(hào)的那行
  • 切換窗口到上一個(gè)或者旁邊的Tab
  • 切換到上一個(gè)app留瞳、指定的app
  • 將選定的一行或者多行代碼注釋掉
  • 啟動(dòng)構(gòu)件(Build)
  • ...

時(shí)間消耗估算

按粗略估計(jì)拒迅,假設(shè)上述操作平均每次多消耗1秒,每分鐘出現(xiàn)2次,一天實(shí)質(zhì)工作6小時(shí)璧微,那么一天就多消耗:

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

那么一年下來就多消耗:

12分鐘 * 22 * 12 = 3168 分鐘 = 52.8 小時(shí) ≈ 6.6 工作日

當(dāng)然作箍,相信大多數(shù)程序員或多或少也會(huì)記住和使用常見的快捷鍵,所以真實(shí)數(shù)據(jù)未必有上述估算那么觸目驚心前硫。

關(guān)于快捷鍵的建議

關(guān)于快捷鍵胞得,我建議程序員們找到所使用的Editor、IDE或其他軟件的快捷鍵表屹电,逐個(gè)試一下阶剑,并且復(fù)習(xí)、練習(xí)那些常用但又一下子記不住的快捷鍵危号。

如:

二牧愁、Emacs Keybindings

簡單來說,就是使用Ctrl + P / N / B / F分別代替了方向鍵的上下左右——一下子為右手減少了至少12厘米的行程外莲。

這在macOS中是默認(rèn)開啟的猪半,即意味著所有Editor、IDE中甚至輸入框控件中都可以使用苍狰。而Ubuntu Linux上則需要手工操作一下(詳見:Emacs-like keybindings system-wide?)办龄。至于Windows,我就沒有研究過了淋昭。

當(dāng)然,這當(dāng)中還有其他一些有用的組合鍵:

按鍵 效果
Ctrl + A 移到行首(段首)
Ctrl + B 左移
Ctrl + D 向右刪除
Ctrl + E 移到行尾(段尾)
Ctrl + F 右移
Ctrl + H 向左刪除
Ctrl + K 向右刪除至行尾(段尾)
Ctrl + N 下移
Ctrl + O 光標(biāo)后插入新行(注:有別于回車)
Ctrl + P 上移
Ctrl + T 交換光標(biāo)旁邊的兩個(gè)字符
Ctrl + V 類似Page Down
Ctrl + Y 粘貼先前由 Ctrl + K 刪除的文本

(注:我沒有學(xué)習(xí)過Emacs安接,只是知道上述組合鍵)

三翔忽、Vim Mode

小測試

請(qǐng)先自我測試一下,以下場景你是不是通過Home盏檐、End或者方向鍵等方式來實(shí)現(xiàn)的呢:

  1. 光標(biāo)在行首歇式,需要將其移動(dòng)到第4個(gè)單詞尾部
  2. 光標(biāo)在行首,需要將其移動(dòng)到第一個(gè)左小括號(hào)的位置之后胡野,以便輸入新文本
  3. 將光標(biāo)移動(dòng)到所在單詞的下一次出現(xiàn)的位置(例如材失,在switch單詞上,移動(dòng)到下一個(gè)switch中)
  4. 想將當(dāng)前行代碼重復(fù)4次硫豆,以便作微小修改 (field1, field2, field3之類)
  5. 想刪除3行代碼

如果用Vim mode的話龙巨,很容易就達(dá)到了。按鍵分別如下:

  1. 3w e (3次按鍵)
  2. f ( a (3次按鍵)
  3. * (1次按鍵熊响,無論兩個(gè)單詞間相隔多少行)
  4. yy 3p (4次按鍵旨别,僅包含復(fù)制粘貼,未包含修改動(dòng)作)
  5. 3dd (3次按鍵)

Vim mode的優(yōu)點(diǎn)

它真正的優(yōu)點(diǎn)汗茄,在你沒有親身體驗(yàn)之前秸弛,是很難向你言傳的。只能概括如下:

對(duì)于同樣的操作,它減少按鍵的次數(shù)递览、操作的時(shí)間叼屠,減少了大腦用于判斷光標(biāo)移動(dòng)位置等的分神、消耗绞铃,最終大大地提高了效率环鲤。

如果你等不急的話,先看看這個(gè)教程中的動(dòng)畫演示吧:

我的Vim mode之路

對(duì)于Vim mode憎兽,我頗有相見恨晚的感觸冷离。曲折經(jīng)歷如下:

  • 2001年學(xué)習(xí)Linux時(shí)學(xué)過Vim(或稱Vi),當(dāng)時(shí)只是記住了有Normal mode纯命、Insert mode之類的區(qū)別西剥、HJKL是使用光標(biāo)的、退出時(shí)頗為麻煩亿汞;(聽說有人為了退出Vim瞭空,不惜使用Ctrl+Z,然后kill掉Vim)
  • 2006年有同事給我演示GVim(Vim的Windows版本)疗我,當(dāng)時(shí)也沒覺得它有什么威力咆畏;
  • 直至2015年,有位老同事(真的“老”吴裤,他生于五十年代)在吃飯之余給我演示Chrome瀏覽器中如何使用Vimium這個(gè)插件做到看網(wǎng)頁不用鼠標(biāo)——正是這實(shí)實(shí)在在的演示打動(dòng)了我旧找,令我痛下決心去學(xué)習(xí)Vim mode——學(xué)習(xí)了之后才發(fā)現(xiàn),不少Editor麦牺、IDE支持Vim mode钮蛛。

Vim教程

鑒于我的經(jīng)歷,這里我也就給你搬運(yùn)一下帶有演示的Vim教程剖膳,希望它們能給你帶來足夠的震撼和學(xué)習(xí)動(dòng)力:

另外也推薦看看“酷殼 CoolShell”上的Vim系列文章魏颓。

支持Vim Mode的軟件

很多軟件都有支持Vim mode的插件,甚至原生支持吱晒,這也足見其實(shí)用程度:

四甸饱、上述三者于復(fù)利的關(guān)系

復(fù)利是什么?簡單來說仑濒,就是1.01的100次方就約等于37.78叹话,即是:微小的增長隨著時(shí)間的推移而累計(jì),越到后面收益的增長越大躏精,且呈指數(shù)式增長渣刷。

上文中僅僅是快捷鍵一項(xiàng)中的估算(強(qiáng)調(diào):是估算),一年就可以節(jié)省6.6個(gè)工作日了矗烛,還沒有算上Emacs Keybindings和Vim Mode呢辅柴。

如果這勢頭累計(jì)20年……不算下去了箩溃,不少人在討論35歲的程序員何去何從呢。 ??

參考(注碌嘀,本文目的不是討論投資涣旨、理財(cái)):

復(fù)利是什么,為什么愛因斯坦說它是宇宙最厲害的東西之一(復(fù)利應(yīng)該屬于投資理財(cái))股冗?

五霹陡、結(jié)語

工欲善其事,必先利其器——鑒于復(fù)利的效應(yīng)止状,建議立志當(dāng)個(gè)好程序員的朋友盡早實(shí)踐本文的3點(diǎn)建議烹棉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市怯疤,隨后出現(xiàn)的幾起案子浆洗,更是在濱河造成了極大的恐慌,老刑警劉巖集峦,帶你破解...
    沈念sama閱讀 222,946評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伏社,死亡現(xiàn)場離奇詭異,居然都是意外死亡塔淤,警方通過查閱死者的電腦和手機(jī)摘昌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來高蜂,“玉大人聪黎,你說我怎么就攤上這事》谅恚” “怎么了挺举?”我有些...
    開封第一講書人閱讀 169,716評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烘跺。 經(jīng)常有香客問我,道長脂崔,這世上最難降的妖魔是什么滤淳? 我笑而不...
    開封第一講書人閱讀 60,222評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮砌左,結(jié)果婚禮上脖咐,老公的妹妹穿的比我還像新娘。我一直安慰自己汇歹,他們只是感情好屁擅,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著产弹,像睡著了一般派歌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評(píng)論 1 314
  • 那天胶果,我揣著相機(jī)與錄音匾嘱,去河邊找鬼。 笑死早抠,一個(gè)胖子當(dāng)著我的面吹牛霎烙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蕊连,決...
    沈念sama閱讀 41,235評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼悬垃,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了甘苍?” 一聲冷哼從身側(cè)響起尝蠕,我...
    開封第一講書人閱讀 40,189評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羊赵,沒想到半個(gè)月后趟佃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡昧捷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評(píng)論 3 343
  • 正文 我和宋清朗相戀三年闲昭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靡挥。...
    茶點(diǎn)故事閱讀 40,926評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡序矩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出跋破,到底是詐尸還是另有隱情簸淀,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評(píng)論 5 351
  • 正文 年R本政府宣布毒返,位于F島的核電站租幕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拧簸。R本人自食惡果不足惜劲绪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盆赤。 院中可真熱鬧贾富,春花似錦、人聲如沸牺六。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淑际。三九已至畏纲,卻和暖如春扇住,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背霍骄。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評(píng)論 1 274
  • 我被黑心中介騙來泰國打工台囱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人读整。 一個(gè)月前我還...
    沈念sama閱讀 49,368評(píng)論 3 379
  • 正文 我出身青樓簿训,卻偏偏與公主長得像,于是被迫代替她去往敵國和親米间。 傳聞我的和親對(duì)象是個(gè)殘疾皇子强品,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容