程序員(yuán)一(yī)旦進入 Vim ,就(jiùβ ¥α)再難以脫身(shēn)。”這(zhè)聽(tīng✔♣)起來(lái)像是(shì)一(yī)個(gè)恐¶γ↕怖故事(shì),但(dàn)是(shì)卻真實的(©☆de)發生(shēng)在程序員(yuánπ∞)的(de)身(shēn)上(shàng), Stac>&k Overflow 上(shàng)關于☆≥如(rú)何退出 Vim 的(de)問(wèn)題,其點擊量已有(yǒu)上(shàng)Ω∑γ百萬次了(le)。
問(wèn)題原文(wén)為(wèi):
I'm stuck and cannot es♦€cape. It says:
"type :quit<E∞"nter> to quit VIM"
But when I type that it simply appears in the object body.
你(nǐ)可(kě)能(néng)認為(wèi)“我€®使用(yòng) Vim 很(hěn)久了(le),∞>♣₽我認為(wèi) Vim 很(hěn)好(hǎo)用(yòngπ✔®),沒必要(yào)退出啊!”但(dàn)是(sh÷¥↕ì)用(yòng)戶覺得(de)沒必要( ≥'δyào)退出和(hé) Vim 不(bù)能(néng)退§♥₹≤出其實是(shì)兩個(gè)概念,對(duì)于 Vim 退出問( ₽₩wèn)題的(de)討(tǎo)論可(kě)以追溯到(dào)✔φ2014年(nián)。
2014年(nián) 國(guó)外(wài)著名 Reddit 網站(z₽≠hàn)就(jiù)有(yǒu)關于此的(de)問(wèn)答(d¥∞↕★á):
Q: How do you generate a random stri☆π<∞ng?
A: Put a Windows user in front ♦><☆of vi, and tell them to eα•σxit
2015年(nián),關于 Vim 的(de)退出問(w<λ$ èn)題就(jiù)像滾雪(xuě)球一(yī)樣,程序員(yuáε>n)的(de)反饋越來(lái)越多(duō),甚至有(yǒu)程序員(↕→™yuán)表示:“我使用(yòng)Vim已有(yǒu)≠←∞兩年(nián)時(shí)間(jiān),主要(yào)原因不(bù©>)是(shì)它的(de)強大(dà),而是(shì)因為(wèi)我不(≠ bù)知(zhī)道(dào)如(rú)何¶β退出。”
過去(qù)的(de)一(yī)年(nián)中,如(rú)何退出 ♦→∞¥Vim 編輯器(qì)這(zhè)一(yī)問(w≈©∑èn)題占據了(le) Stack Overflowλ≤• 問(wèn)題流量的(de)0.005%,這(£✔zhè)就(jiù)意味著(zhe) Stack Overflδ±♥•ow 每有(yǒu)兩萬個(gè)問(wπ↑↕™èn)題的(de)訪問(wèn),其中就(jiù♠×✔)有(yǒu)一(yī)個(gè)是(s≠§hì)訪問(wèn)如(rú)何退出 Vim 編輯器(qì),如(rú≠≥)果按 Stack Overflow 來(lái)計(jì)算(suànβ✔<←)的(de)話(huà),那(nà)麽每一(yī)小(xi∞§ǎo)時(shí)就(jiù)有(yǒu)80個(gè)人(rén)在求助•∑如(rú)何退出 Vim 。
更有(yǒu)趣的(de)是(shì),這(zhè)個(gè)問(wèn)題在 Stack Overflow✔ 上(shàng)出現(xiàn)之後就(jiù)持續γ¥≤受到(dào)程序員(yuán)的(de)βπ☆關注。而相(xiàng)比 Stack Overflow ,網絡上(shàn≠$g)“ Vim 如(rú)何退出”的(de)熱(r> ☆↓è)度似乎更甚,據 Google Trends α顯示,自(zì)2004年(nián)開(kāi)始 Vi ₹m 退出的(de)熱(rè)度就(jiù)←$↑一(yī)直在增長(cháng),這(zhè)發生™↕(shēng)在 Stack Overfl€σ€ow 關于 Vim 退出問(wèn)題的(de)提出之前,2010年(niá×↕♠n)該問(wèn)題的(de)熱(rè)度就(jiù)激增,呈現(xiàn)₽↑∞出了(le)線性增長(cháng)的(de)趨≥↑>勢。
Stack Overflow 數(shù)據也(yě£↔∏≠)揭示了(le)一(yī)些(xiē)很(hěβ©n)有(yǒu)趣的(de)事(shì)情,如(rú)程序員(yuán)常用(←φ★¶yòng)的(de)标簽其實可(kě)以更傾向于<¥對(duì)他(tā)們所用(yòng)技(jì)術(sh§♣ù)進行(xíng)分(fēn)類,例如§↓(rú) JavaScript 工(gōng)程師(shī)和<£(hé) Web 工(gōng)程師(shī)通(tōng)常會(∏∑$huì)在 C#,Android,ios,PHP,Java 等等的≈δ•σ(de)标簽停留,而在 Vim 中停留的(de)程序員(↕β $yuán)往往更關注 IDE,如(rú) Visua<↔l Studio,Eclipse,Xcode 等等。← α∞
如(rú)果毫不(bù)客氣的(de)說§>♠(shuō),Vim 不(bù)僅是(shì)一(yī)座¥$←✘監獄(讓程序員(yuán)易進難出),還(hái)是(shì)一(yΩ≥ī)個(gè)陷阱,它會(huì)讓程序員(yuá↕¶n)通(tōng)過鏈接或者其它方式落入陷阱,一(y★¥ī)旦進來(lái)就(jiù)很(hěn)難出去(qù)。
現(xiàn)在如(rú)果你(nǐ)去¥→♦¥(qù)谷歌(gē)搜索“如(rú)何退出 Vim ”,一(yī)般都(dōu)會(huì >ε)得(de)到(dào)以下(xià)的(de)回複:
如(rú)果當前是(shì)處于 Insert 和£☆β±(hé) Append 模式下(xià),那(nà)麽可(σπ∏kě)以按 Esc 退出。
或者是(shì)輸入“:q!"退出,但&§(dàn)它僅僅是(shì)退出了(le)編輯 ♠π∞器(qì),并不(bù)能(néng)保存修改內(nèi)容。
但(dàn)這(zhè)對(duì)于運維來(lá←≈i)說(shuō),應該不(bù)算(suàn)問(wè ∞n)題了(le)吧(ba)
這(zhè)可(kě)是(shì)運維難得(de)抓住一(yī)次調侃程序<♥↑員(yuán)的(de)好(hǎo)機(jī)會(huì)啊