可怕的 vim (缺點)
- vim 學習門檻高
- 操作奇怪
- 不能用鼠標
- 功能弱
- 不配置不折騰的話,什么功能都沒有,就是一個普通的編輯器
- 不能管理項目
- 沒有代碼高亮
- 沒有代碼提示
- ......
- 什么都沒有
如此來說, vim 沒有任何優勢...可是業內有一句話:
世界上只有三種編輯器 vim, Emacs, 其他
vim 的優點
為何會這樣呢? 我們來看看 vim 的優點:
- 運指如飛
- 所思即所得
可以這樣說, 用 vim 和用 IDE 什么的,完全是兩個感覺.
用 IDE 就像用一雙筷子,夾住一把勺子,然后去舀菜吃. 別扭不? 想想都別扭.
用 vim 就像用手直接去抓菜吃,那個淋漓暢快.
為什么這樣說呢?
- vim 使用的是肉體記憶
- 其他使用的是技巧記憶
肉體記憶是反射性的,相當于給你增加了一個繪圖的 GPU,不會中斷和占用你的 CPU
而技巧記憶必須中斷 CPU, 切換 CPU 去做其他事情,然后再切換回來.
比如我要將文本中一行代碼剪切到最頂端.
- vim:
ddggp
敲下這幾個字母你就實現了這個功能了 - 其他黨: 把手從鍵盤上拿下來,抓住鼠標,顫抖的小心翼翼的拖拉著光標選中對應的文本,千萬要小心,不要少選中任何一個字符. 按下右鍵, 在彈出的一堆菜單中仔細的找到 剪切 小心翼翼的選中 剪切 ,然后拼命的滾動滾輪,直到滾不動以后,仔細查看是否滾最上面了,有沒有少滾一點,然后把顫抖的光標移動到最上面那一行的頂端.接著按下右鍵,在彈出的密密麻麻的菜單中,仔細的找到 粘貼 這兩個字.
可憐的其他黨,做完這些以后,你還能想得起來復制到最上面是干什么么?
嗯,沒錯你花了2分鐘,還是能想得起來,可能就是復制上去測試一下. 然后不行還是得改回去.
- vim:
uu
就改回去了 - 其他黨: 好累,就是把上面的操作反向再重復一次.我都懶得寫了.難點是要找到該插回代碼的哪里?別插錯了.不能用 ctrl+z 哦.純粹的其他黨不應該使用熱鍵的.
中斷對我們的工作效率影響是非常巨大的,可以參見 碎片化對我們腦力智力的摧殘
不要說上面這種不人性的操作了,即使是將手從鍵盤上拿下來,也是影響非常大的.
所以一個優秀的 vim 程序員,操作編輯文本的能力和效率可能只是其他黨的4-5倍.
但是考慮到持續思考不中斷編輯的產出, vim 程序員的工作效率甚至能達到其他黨的10-20倍.
vim 甚至能讓你思維方式和看待事物的發生不一樣的改變. 所以身為一個程序員, 不使用一個真正的編輯器,那是不稱職的.
vi的歷史
vi 由 Bill Joy 于1976年發表, 已經有接近 40 年的歷史.目前是 UNIX 規范的一部分, 只要是 UNIX 的衍生類操作系統, 里面一定能使用 vi.
vi/vim 是一款能夠一輩子使用下去的工具,永遠不會過時,而且你永遠可以持續性的學習技巧,持續性的提高自己的生產效率. 是不變應萬變的神器
然后IDE呢? 這幾年流行過的 IDE 數不勝數 jbuilder, Netbeans, IntelliJ, Eclipse, webstorm, Sublime 還有 jetbrains 出品的各種IDE. 可能我孤陋寡聞了,還有很多優秀的 IDE 沒列出來, 沒錯 IDE 是很好用, 以后可能還有更好用的 IDE 出來, 你就慢慢的沒有積累的學下去吧.
如何學習 vim
- 打開一個 vim 編輯器,輸入
:help
- 部門有一本書
- 網絡上有很多簡單的入門技巧
你隨時可以開始學習, 但是學習的過程, 怎么說呢?并不是那么讓人愉快的, 更類似學習一款新的輸入法. 你會痛苦糾結彷徨, 但是堅持過來了,形成肉體記憶了,就都好了.
你要抱著一種思路: 不求完美,但求使用
只要學到基礎的東西,堅持的用下去,每次遇到不會的操作, 停下手頭工作, 都去查出來,記下來.
vim 有兩種(其實是三種)模式:
- 移動 esc
- 插入 i
- 虛擬 v(可以不用管)
基本能力
- 移動模式: h(左)j(下)k(上)l(右) 一定要最先的記死用熟
- 插入模式: 你可以輸入想要輸入的東西,沒什么可以說的
- 保存文件:
:w
然后回車 - 復制內容: v 進入虛擬模式, hjkl 移動復制, 然后按下 y
- 粘貼內容: p
- ....
自己慢慢學,其實入門也很簡單,只是形成肉體記憶比較難. 我現在熟悉的 vim 命令也很少,就是常用那幾個,因為編碼工作不夠多吧.