本文已轉至http://cn.abnerchou.me/2014/03/02/bfdaadb0/
自從有了計算機,人們就想向其灌輸自己的想法。
要想對其輸入,自然離不開文本編輯器。
公告:《VIM-Adventures》的作者願意免費贈送一個此游戲的激活碼給在本系列攻略中留言的用戶。活動詳情請見本文末。
最近一直在學習Emacs,這個幾乎和我同齡的軟件,在發展如此迅速的時代依然有不少程序員的死忠粉,不禁讓人詫異。友人常問:“現在既然都有IDE了,還學那么古老的編輯器干什么?” 剛開始我也這么認為,但自從在Linux下寫程序后才發現,Linux的IDE是多么的坑了。且不說安裝要費老半天勁(apt-get 得到的一般不是最新版本),裝好后調試編譯環境又是半天,最可氣的是,一切都弄好后,突然要換電腦工作,我總不能把硬盤拔了帶着吧。而且常用IDE產生了IDE依賴症,甚至不用某個廠商的IDE,就不會寫代碼了。於是在網上就找到了Emacs,支持自定義化配置,配置文件小巧可隨時備份,甚至可以用來煮咖啡。
等等,等等,題目是vim啊,說了半天Emacs是作甚?當然我認識vim比Emacs要早,因為vim是Linux系統自帶的vi的進階版。當時是為了遠程修改一些配置文件才不得已學了兩下,但發現其不夠直觀,進入后完全不知道該如何操作。也就了解了下如何插入,修改罷了。
但Emacs歡迎界面就有一個15分鍾左右的教程(怎么又扯回Emacs了)。上手難度陡降,但發現越學深入越有東西要學,比如系統配置,eLisp語言,自定義插件等等……一切都還好,但……但……光標的移動有點太……難了吧……C+n下一行,C+p上一行,C+v下一頁,M+v上一頁,C+f向后,C+b向前(C代表Ctrl,M代表Alt或類似鍵)……有時只需要光標向后移一下,竟然要按兩個鍵,有點太低效了吧。這時候vim閃亮登場(我是用Emacs下的Evil插件來實現vim控制的),它的控制只需要h,j,k,l,單鍵即可控制光標移動,有點像上下左右方向鍵。所以,我覺得有必要結合Emacs和vim來降低其學習曲線了:
常見編輯器的學習曲線<圖>
vim的入門難和Emacs的后期變態讓人望而生畏。vim入門難,到底難在什么地方呢?難在養成一種習慣,即鍵盤上26個按鍵不再是普通的按鈕,其還附有了特殊的意義。而且其上下左右鍵是k,j,h,l,這是多么的蹩腳啊,為啥不向CS學習下設置成w,s,a,d。因為w,s,a,d其本身還有特殊含義。vim的按鍵已經可以算是最優了,在不觸動鼠標的情況下,可以快速完成各種操作,比如dd是刪除一行,db是刪除前一個單詞,dk是向前刪除兩行等等。以前都是要多次按鍵,或者用鼠標協作,現在完全可以用鍵盤快速完成。
有的人用不慣vim的方向鍵就早早的退出了。其實只要練習,沒有什么難的,這里有個簡單的貪吃蛇游戲,就是用vim的方向鍵來控制。在吃的時候要按 i (即vim里的插入功能) 才可以,並且在吃完后按Esc返回鍵盤控制。我的最高分只有700。 T_T
當然這里要說的VIM-Adventures 不單單用游戲的形式來練習光標控制,還可以通過游戲學習到vim的按鍵操作。通過其可以學習的操作有:
h j k l : w W e E b B x X r d dd D ~ 0 ^ $ f F t T ; , % z zt zz zb g gg G 1 2 3 4 5 6 7 8 9 count [count] * # n N p P " y yy Y reg :reg registers "" "- "_ "0 "1 "2 "3 "4 "5 "6 "7 "8 "9 "a "b "c ... "x "y "z "A "B "C ... "X "Y "Z i I a A c cc C s S o O word WORD sentence paragraph { } ( ) [{ ]} [( ]) . text-objects aw iw aW iW as is ap ip a[ a] i[ i] a( a) i( i) a< a> aB iB ab ib i< i> at it a{ a} i{ i} a" i" a' i' a` i` H M L nu nonu nu! nonu! | / ? ` ' m :marks :delm :delmarks :delm! :delmarks! undo u :undo CTRL-R :redo redo
在其后的章節,我將詳細講解其每一關的攻略。因為我發現本游戲不光需要知道vim的操作,還有一定的解謎成分。並通過游戲本身了解到vim編輯器一些自身的特性。
敬請期待~
抽獎活動詳情
用戶需要達成以下兩個要求即可獲得抽獎資格:
- 在本系列文章中留言;
- 關注博主。
(如果可能的話再推薦本系列任一文章,不勝感激。)
抽獎將在本系列文章連載結束后進行,屆時將通過博客園站內信通知獲獎用戶。