Vim 公案

英文原文:Tom Ryder - Vim Koans
本翻譯已獲得原作者 Tom Ryder 的許可耿戚。

Wq 大師和 Windows 開發(fā)者

Wq 大師正在指導(dǎo)一些 Vim 菜鳥扬卷。在他贊美許多 Vim 的美德的演講之后宇挫,他問(wèn)道是否還有問(wèn)題歪脏。 一個(gè)年輕人舉起了手。

“大師牵现,通過(guò)怎樣的手段可以過(guò)濾出純文本表格中包含‘tcp’的行的第二列?”

Wq 大師什么也沒說(shuō),轉(zhuǎn)過(guò)去在身后的白板上寫道:

:%!awk '/tcp/ {print $2}'

其他學(xué)生竊竊私語(yǔ)并表示贊同元咙。

“但是我是在 Windows 下開發(fā)的??”那個(gè)學(xué)生結(jié)結(jié)巴巴的說(shuō)。

Wq 大師再次轉(zhuǎn)過(guò)身去巫员,擦掉了命令并寫道:

:v/tcp/d
:g/tcp/s/\S\+\s\+\(\S\+\)\s.*/\1/

“什么庶香!對(duì)于這樣一個(gè)簡(jiǎn)單問(wèn)題來(lái)說(shuō)這太復(fù)雜了!”那個(gè)學(xué)生哭訴道简识。

Wq 大師再次轉(zhuǎn)過(guò)身去赶掖,擦掉了命令并寫道:

Microsoft Excel

學(xué)生頓悟。

沒有太大的差異

一天七扰,一個(gè)和尚拜訪了 Wq 大師奢赂,并詢問(wèn)道:“大師,如果我掌握了 Vim颈走,我的代碼會(huì)有什么不同膳灶?”

Wq 大師回答道:“使用 Vim 之前:聲明、定義立由、處理轧钓、打印锐膜;使用 Vim 之后:聲明毕箍、定義、處理道盏、打印而柑。”

Wq 大師和 Markdown 侍僧

一個(gè) Markdown 侍僧來(lái)找 Wq 大師并向他展示他的 Vim 插件荷逞。

“看媒咳,大師≈衷叮”他說(shuō)道:“我差不多已經(jīng)完成了 Vim 宏涩澡,它可以將 Markdown 轉(zhuǎn)化為 HTML。 我的函數(shù)縱橫交織院促,我的解析器是效率的典范筏养,并且我的結(jié)果完美無(wú)瑕斧抱。 我敢說(shuō)我已經(jīng)掌握了 Vimscript,并且我的作品將會(huì)驗(yàn)證 Vim 是一款面向英明的開發(fā)者的現(xiàn)代編輯器渐溶! 我做的正確么辉浦?“

Wq 大師讀了好幾分鐘侍僧的代碼一語(yǔ)不發(fā)。 然后他打開一個(gè) Markdown 文檔茎辐,并鍵入:

:%!markdown

HTML 立即填滿了緩沖區(qū)宪郊。 侍僧哭了起來(lái)。

Wq 大師和 Unix 大師

一個(gè)年長(zhǎng)的 Unix 大師來(lái)找 Wq 大師拖陆。

“我很困惑弛槐,Wq。關(guān)于你教導(dǎo) Vim 的方式依啰。 Vi 是圣潔的乎串,但是 Vim 不是;它的代碼蔓延滿地速警,他的特性吞噬內(nèi)存叹誉;他的二進(jìn)制龐大臃腫;他的行為頗不一致闷旧。 這并不是 Unix 之道长豁。我害怕你已經(jīng)誤導(dǎo)了你的學(xué)生。有什么可以挽回的么忙灼?”

Wq 大師點(diǎn)點(diǎn)頭匠襟。“你說(shuō)的對(duì)”该园,他說(shuō)道酸舍。“Vim 并不完整爬范。我們來(lái)修復(fù)它吧父腕。我們開始好么?”

年長(zhǎng)的 Unix 大師表示同意青瀑,并打開一個(gè)命令行。他鍵入:

$ vi vim.c

他開始寫代碼萧诫。Wq 大師看著他很長(zhǎng)一段時(shí)間然后問(wèn)他:“你實(shí)現(xiàn)的是哪種 Vi斥难?Nvi?Vim帘饶?Elvis哑诊?”

“我不知道”,Unix 大師說(shuō)道及刻《瓶悖“管它呢竞阐。”

Wq 大師點(diǎn)點(diǎn)頭暑劝。 Unix 大師呆坐片刻骆莹,沒有保存便關(guān)閉了文檔。

沒有最好的工具

一天晚上有風(fēng)暴担猛,Wq 大師的房子塌了幕垦。 第二天早上,他用他的舊工具開始重建房子傅联。 他的學(xué)徒過(guò)來(lái)幫他先改,他們建了一段時(shí)間并取得了良好的進(jìn)展。 在工作的過(guò)程中蒸走,學(xué)徒開始跟 Wq 大師講他最近的成果仇奶。

“大師,我開發(fā)完一個(gè)絕妙的 Vim 腳本比驻,可以給出一個(gè)文檔的所有有用的信息猜嘱。 它能計(jì)算單詞、句子嫁艇、段落的數(shù)量朗伶,甚至可以告訴你這個(gè)文檔使用的是什么語(yǔ)法高亮規(guī)則。 我一直在我的狀態(tài)欄中使用它步咪。 這是一個(gè)優(yōu)美的作品论皆,我對(duì)它非常的自豪。 誠(chéng)然猾漫,Vim 是一個(gè)偉大的工具点晴!”

Wq 大師沒有回應(yīng)。以為自己無(wú)意中觸怒了大師悯周,學(xué)徒陷入沉默并繼續(xù)工作粒督。

學(xué)徒并排放置了兩塊木板并擺好了釘子,正準(zhǔn)備釘進(jìn)去禽翼,卻發(fā)現(xiàn)夠不到錘子屠橄。

“能幫我遞下錘子么,大師闰挡?”

Wq 大師遞給學(xué)徒一把鋸子锐墙。

學(xué)徒頓悟。

Pope 大師的夢(mèng)

Pope 大師有一次夢(mèng)到自己成為了 Emacs 用戶长酗。 當(dāng)他醒過(guò)來(lái)的時(shí)候溪北,他感嘆道:

“我不知道是我 Tim Pope 夢(mèng)到了我是一個(gè) Emacs 用戶,還是一個(gè) Emacs 用戶夢(mèng)到了我是 Tim Pope!”

優(yōu)越的編輯器

Neil 大師和 Wyatt 大師因教導(dǎo) Vim 之道而聞名之拨,他們周游各地教導(dǎo)學(xué)生茉继。

一天一個(gè)學(xué)生問(wèn)他們:“Neil 大師談吐溫和平穩(wěn),他說(shuō)的話小心謹(jǐn)慎蚀乔,語(yǔ)調(diào)卻不容置疑烁竭。 但是 Wyatt 大師卻充滿激情,開始和停止乙墙,他的演講快速而充滿活力颖变,他的靈魂融入了他的演講。 請(qǐng)問(wèn)教導(dǎo) Vim 的方式哪個(gè)最優(yōu)秀听想?”

Neil 大師和 Waytt 大師異口同聲地答道:“編輯器哪個(gè)最優(yōu)秀腥刹?Vi 還是 ex?”

數(shù)個(gè)學(xué)生頓悟汉买。

慢學(xué)生的絕望

Wq 大師正在吃午餐衔峰,一個(gè)學(xué)生沖進(jìn)來(lái)他的房間跪在他的腳下。 眼睛里充滿淚水蛙粘,他看起來(lái)有深深的挫敗感垫卤。 Wq 大師放下他的碗問(wèn)道:“什么讓你如此沮喪,年輕人出牧?”

“大師”穴肘,他說(shuō)道:“我放棄了。我永遠(yuǎn)也掌握不了 Vim舔痕! 我永遠(yuǎn)也學(xué)不會(huì)前人偉大的方法评抚! 我永遠(yuǎn)也學(xué)不會(huì)將 Vim 用得簡(jiǎn)單粗暴并有著完美的效率!”

“你為什么這么說(shuō)伯复?”

“目前為止慨代,我是最差的學(xué)生。 當(dāng)我掙扎著寫了一個(gè)簡(jiǎn)單的宏啸如,我的同學(xué)們正在輕松地寫著遞歸宏侍匙。 當(dāng)我試著記住空格字符的正則表達(dá)式時(shí),我的同學(xué)們正在寫 Vimscript 中的循環(huán)復(fù)雜度測(cè)試叮雳。 我太慢了想暗,我感到羞愧,恐怕我已經(jīng)失敗了债鸡〗酰”

Wq 大師站起來(lái)⊙峋“跟我到窗前”,他說(shuō)道告唆。

學(xué)生站起來(lái)跟隨 Wq 大師到了窗前棺弊,看到街道對(duì)面 Wq 大師鄰居的房子晶密。 透過(guò)窗戶,兩個(gè)像是西裝革履的年輕人正在寫一份文檔模她。

“你看到了什么稻艰?”Wq 大師問(wèn)道。學(xué)生看了一會(huì)侈净。

“那個(gè)年輕人正在用 Microsoft Excel 來(lái)生成電子表格尊勿。 它正在手動(dòng)更新每一個(gè)單元。 他甚至都不知道如何使用公式畜侦。 他輸入大寫字母要按 Caps Lock元扔,輸入完了再按一下。 他太慢了旋膳! 我不明白澎语。他為什么還能這么愉悅?”

“看到這個(gè)年輕人验懊,你為什么不能擅羞?”Wq 大師回應(yīng)道。

學(xué)生頓時(shí)就領(lǐng)悟了义图。他的名字是 Qa减俏,之后他成為了一名偉大的大師。

征服 Vimscript

一個(gè)學(xué)生詢問(wèn) Wq 大師:“我什么時(shí)候可以知道我已經(jīng)掌握了 Vimscript碱工?”

Wq 大師回答道:“當(dāng)你從未用過(guò)它的時(shí)候娃承。”

Vim 的挽歌

一個(gè)年輕人懇求 Wq 大師做他的觀眾痛垛,聽他讀他最近的作品草慧,一首 Vim 輝煌的挽歌。 他眼中噙著淚水開始朗讀他的肺腑之作匙头,仿佛將他的靈魂傾倒在他對(duì)文本編輯器的崇拜之心上漫谷。

大師坐在那里聽了一會(huì)他的詩(shī)。 第十句詩(shī)之后蹂析,他舉起了他的手舔示。 “請(qǐng)你不要讀了。你的詩(shī)太可怕了电抚√璧荆”

年輕人非常的生氣。

“Wq 大師蝙叛,你肯定是所有人中最能感受這首詩(shī)的人俺祠。你是一個(gè)了解編輯器之美的人。 你怎么可以如此毫不耐煩、不屑一顧蜘渣?甚至這首詩(shī)我都是用 Vim 寫的淌铐!”

“你用 Vim 寫的”,大師說(shuō)道蔫缸⊥茸迹“但是你的格式是不均勻的,你的韻腳是不一致的拾碌,你的隱喻模糊不清吐葱。 你用了一個(gè)很好的工具寫了一首很糟的詩(shī)。 你不是詩(shī)人校翔,Vim 也不能讓你成為一個(gè)詩(shī)人弟跑。 我的學(xué)生有很多并不是程序員,Vim 也同樣沒法幫助他們展融〗讶希”

“Vim 是永恒美麗的”,詩(shī)人抗議著告希∑私“對(duì)于挽歌來(lái)說(shuō)它是值得一寫的題材⊙嗯迹”

“Vim 不會(huì)永恒的喝噪。 Nvi 不會(huì)永恒的。 Vi 本身也不會(huì)永恒的指么,只有 Vi 的本質(zhì)才會(huì)酝惧。 Emacs 有著 Vi 本質(zhì),nano 有著 Vi 本質(zhì)伯诬,甚至 Notepad 也有 Vi 本質(zhì)晚唇。 你目光狹窄,你趨炎附勢(shì)盗似,因此你沒法把握你詩(shī)的主題的真正價(jià)值哩陕。 你必須離開。等你掌握了 Emacs 再回來(lái)赫舒『芳埃”

詩(shī)人非常的羞愧地離開了。他再也沒有回來(lái)接癌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末心赶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子缺猛,更是在濱河造成了極大的恐慌缨叫,老刑警劉巖椭符,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異弯汰,居然都是意外死亡艰山,警方通過(guò)查閱死者的電腦和手機(jī)湖雹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門咏闪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人摔吏,你說(shuō)我怎么就攤上這事鸽嫂。” “怎么了征讲?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵据某,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我诗箍,道長(zhǎng)癣籽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任滤祖,我火速辦了婚禮筷狼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匠童。我一直安慰自己埂材,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布汤求。 她就那樣靜靜地躺著俏险,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扬绪。 梳的紋絲不亂的頭發(fā)上竖独,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音挤牛,去河邊找鬼莹痢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赊颠,可吹牛的內(nèi)容都是我干的格二。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼竣蹦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼顶猜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起痘括,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤长窄,失蹤者是張志新(化名)和其女友劉穎滔吠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挠日,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疮绷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚣潜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冬骚。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖懂算,靈堂內(nèi)的尸體忽然破棺而出只冻,到底是詐尸還是另有隱情,我是刑警寧澤计技,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布喜德,位于F島的核電站,受9級(jí)特大地震影響垮媒,放射性物質(zhì)發(fā)生泄漏舍悯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一睡雇、第九天 我趴在偏房一處隱蔽的房頂上張望萌衬。 院中可真熱鬧,春花似錦入桂、人聲如沸奄薇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)馁蒂。三九已至,卻和暖如春蜘腌,著一層夾襖步出監(jiān)牢的瞬間沫屡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工撮珠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沮脖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓芯急,卻偏偏與公主長(zhǎng)得像勺届,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娶耍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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