閱讀57 返回首頁    go 阿裏雲 go 技術社區[雲棲]


退出VIM

退出VIM

前段時間,Stackoverflow博客上發布的一篇名為“Stack Overflow: Helping One Million Developers Exit Vim”的帖子。有些同學對此表示十分震驚,遂爾進行了狂風暴雨般地嘲諷。

論調大概是:

“這麼低級的問題也需要問?”
“vim都不會的人是有多蠢啊”
“Stackoverflow裏麵果然都是這種弱雞問題……”

我想說,這次我真的要故意唱唱反調。作為一個混跡Stackoverflow一年多,拿到2000+ reputationsStackoverflow迷弟,已經聽到過太多“Stackoverflow裏麵都是弱雞問題”這種言論了,我還是要屢敗屢戰地自辯下。

好,下麵開始品嚐這碗“極端左”煲的重口味雞湯

提問時間

我想問幾個問題,當然,都是問我自己:

  • 當我們使用新工具、新技術遇到問題的時候,怎麼解決問題
  • 怎麼問一個完美的問題,或者問得更刻薄點,我覺得自己會問問題麼
  • StackOverflow中,我學到了什麼

下麵我逐一回答下上麵提出的幾個問題。

問題A

當我們使用新工具、新技術遇到問題的時候,怎麼解決問題

先看看帖子中提到的退出VIM問題,問題的描述是:

I'm stuck and cannot escape. It says:
"type :quit<Enter> to quit VIM"
But when I type that it simply appears in the object body.

很顯然,這哥們是在VIMInsert Mode想退出VIM。他這個時候就算掃一眼VIMMan Page,也是拿不到答案的。他顯然已經嚐試了VIM User Manual之類的文檔,知道了輸入:quit可以退出。這些文檔可能也有說明如何退出Insert Mode,但是,這位哥們是不太可能以一個剛接觸VIM的新人的狀態從冰冷無法交互的文檔裏麵找到答案的。

對於一些的工具、技術,我還沒有探索出裏麵的規律,還沒找到通過自己研究、嚐試來解決問題的有效方法。RTFMRead the f**king manual)這時候可能並不是最有效的辦法,那麼我隻能夠STFWSearch the f**king web)了。或者更通用點,**我這時候會選擇,不論是問GoogleStackOverflow,還是問同事,當然,我更建議先問GoogleStackOverflow**。

所以對於上麵的論調:

“這麼低級的問題也需要問?”
“vim都不會的人是有多蠢啊”
“Stackoverflow裏麵果然都是這種弱雞問題……”

對於熟練使用了VIM的同學而言,這個問題當然是弱雞到不行,但是我倒覺得這哥們使用了非常正確的方式,他在StackOverflow上提出了問題,並拿到了解決自己問題的答案。

問題B

怎麼問一個完美的問題,或者問得更刻薄點,我覺得自己會問問題麼

再回頭看這個被閱讀了100+w次的問題:

I'm stuck and cannot escape. It says:
"type :quit<Enter> to quit VIM"
But when I type that it simply appears in the object body.

PO主其實問了一個很好的問題,介紹了自己麵臨的問題、問題的現象、自己做過的嚐試,從而很快拿到了想要的答案。我不覺得這值得嘲笑,反而非常值得學習。

StackOverflow裏麵有一篇“幫助”專門講如何問問題的,在這裏順便翻譯一遍:

  • 搜索、再搜索;就是先在網站裏麵已有的問題裏麵搜索,看
  • 選一個能簡要說明問題的標題
  • 在帖代碼之前描述地介紹你的問題
  • 幫忙可能幫你解決的同學複現你的問題
  • 加上所有相關的tag
  • review一遍你的問題,假設你自己是第一次看到這個問題
  • 提交問題,回複問題相關的評論

這篇“幫助”後麵還介紹了另外一篇關於問問題的有名的帖子:“How To Ask Questions The Smart Way”,這篇帖子還有好人貢獻了一個中文的版本

問題C

StackOverflow中,我學到了什麼

刷了這麼久StackOverflow,除了讓自己問問題的方式變得更聰明、更專業了一點之外,我還收獲了什麼呢?

開擴了眼界,從而在解決問題時有了更多的思路

這個問題裏麵,我認識了iTerm2 Badges,讓我能在使用iTerm2碼代碼時方便地知道我當前的磁盤使用率、使用的WIFI名、Git倉庫等信息;從這個問題裏麵,我認識了Applescript,讓我能通過Applescript腳本操作Tunnelblick完成了公司VPN的一鍵登錄,從此,登錄和切換VPN基本沒有成本……

關注一個tag的問題時,總會發現其它相關聯的tag,就會去想,這個tag是什麼鬼,然後就能get到新技能,有了新技能,就在解決問題時多了一些可能性了。

能從StackOverflow受益這麼多,我要特別感謝sayakiss。一個偶然的機會看到sayakissStackOverflow頁麵,很是敬佩,於是,注冊了帳號開始刷起來了,得以體驗其中的樂趣。

關於StackOverflow

StackOverflow有幾點我覺得很值得借鑒:

  • 反饋。問了好的問題,或者問題回答得好,都可能會得到Vote Up,從而增加reputation,獲得一些badge。是的,這些並不是物質獎勵,但是能讓你獲得成就感,當你付出時間和智慧回答了一個問題之後,在ACHIEVEMENTS裏麵收到+10的通知的時候,非常愜意。
  • 自維護。StackOverflow裏麵一些對問題修改的判定,並不是由專門的網站運營人員來判定的,而是由網站的資深用戶(需要滿足相應的reputation方麵的限製)來仲裁,參與仲裁的同學會獲得一些badge。就這樣,不僅讓用戶感覺到更有話語權,也節省了很多維護網站的人力,非常聰明的策略。
  • 不八卦。StackOverflowGithubsegmentfault不一樣,是無法follow其它用戶的,也有人在網站裏麵問過這麼做的原因。Jeff Atwood博客裏麵說過:

    We’re not building some hyper-viral social networking tool like Facebook or MySpace or LinkedIn where we try to game you into hanging around and socializing and building lists of fake friends to get results

總結

退出VIM,退出vainignorantmean

參考

最後更新:2017-06-25 15:02:08

  上一篇:go  深度學習網絡大殺器之Dropout(II)——將丟棄學習視為集成學習之我見
  下一篇:go  css樣式入門書目錄