玩轉Vim-札記(一)


玩轉Vim-札記(一)

  簡介

  在這個蔚藍色的星球上,流傳着兩大神器的傳說:據說Emacs是神的編輯器,而Vim是編輯器之神。一些人勇敢地拾起了Vim或Emacs,卻發現學習曲線陡峭而漫長,還是有一些人留下來了,堅定地守護着這兩大神器。一些說葡萄太酸的人想離開又不甘心,總是問:它們到底神在哪里啊?不過在此我只介紹傳說中的編輯器之神-Vim。Vim是Vi最受歡迎的變種之一,除了繼承了Vi迅捷的編輯方式, Vim的功能已經比原始的Vi強大得多。這也得益於它可以用Vim腳本無限地擴展。 Vim.org 上已經有數千個腳本了,給Vim增加各種各樣的特性和功能。而且它的設計更符合Unix傳統,它通過管道機制和系統內各種積木工具打交道,它講究的是和系統內的工具程序協作來完成用戶的任務。除此之外,它的定位也相當明確,就是做一個強大的編輯器,因此它的絕大部分擴展,都是為了更好的完成編輯文本的任務。Vim的前身Vi的作者Bill Joy和Emacs的作者Richard Stallman 都是那個時代著名的黑客,所以這兩款編輯器一開始面向的主要用戶就是寫程序的人,現在仍然是。它們對編程加入了越來越多的支持,如語法高亮、智能縮進、關鍵字補全甚至集成調試。

初窺門徑

  要想玩嘛,首先需要先安裝一個Vim再說咯。由於我的開發一般都是在CentOS上進行的,所以就說下它的安裝吧。其實也就是一行命令的事兒了:

1 [root@voidy ~]# yum install vim
2 Loaded plugins: fastestmirror
3 Setting up Install Process
4 Loading mirror speeds from cached hostfile
5 epel/metalink                                                                                                 | 4.3 kB     00:00    

  至此vim安裝結束,現在先不要進行任何操作,先接着往下看:

1 [root@voidy site-packages]# vim site.py

  然后就會看到如下的界面:

1 def __boot():
2     import sys, imp, os, os.path
3     PYTHONPATH = os.environ.get('PYTHONPATH')

   此時進入了所謂的常規模式(Normal Mode),既然提到了模式這個概念,那么就詳細的說下Vim的兩種模式吧。

  常規模式(Normal Mode)與插入模式(Insert Mode):

  常規模式:可以進行編輯,對已存在的文字進行一些操作,包括:復制,剪切,移動,修改,刪除,格式化等等。

  插入模式:也就是傳說中的輸入了。

  而大部分的編輯器都只有一種模式,以上兩部分的操作合並在一起進行,這就是為什么會有菜單和按鈕的原因,而對於文字的范圍選擇也需要額外的方法來輔助,比如快捷鍵和鼠標操作等。無論是什么樣的情況我們都不得不迫使大腦在思考(輸入)和尋找(編輯)中不停轉換,即使你不在意這一點,始終有一些操作你是無法流水化的。比如說:在光標隨意停留在某處的時候,你能閉着眼睛用鼠標點擊到某個功能嗎?Vim 就可以。換言之一旦你掌握了 Vim之后,所有的操作——強調一遍:所有的操作都可以不用尋找,不用鼠標等工具輔助,你可以全副身心投入在你的主要目標上。

  那么問題來了,如何在兩種模式間進行切換呢?

  其實很簡單的。進入文件之后直接就是常規模式,那么從常規模式進入到插入模式只需要從以下幾個命令選擇一個即可:

1 i:在當前字符的左邊插入 2 I:在當前行首插入 3 a:在當前字符的右邊插入 4 A:在當前行尾插入 5 o:在當前行下面插入一個新行 6 O:在當前行上面插入一個新行

   那么如何從插入模式進到常規模式,最常見的有三種:

  1. 使用 ESC 鍵:這是最通用的方法,它唯一的缺點就是距離標准鍵位較遠,然而由於它的位置在左上角,所以你也可以做一些強化練習來准確的找到它。記住:不要看鍵盤去找,要形成肌肉記憶!也有很多人偏好修改 ESC 鍵位,比如說把它轉移到 CapsLock,即大寫鎖定鍵上去,這是可取的,並且也十分有效,然而我不推薦這么做。因為修改鍵位相對來說麻煩一些,在某些場景會讓你頗感不便。比如說你去客戶那里安裝服務器,遇到的幾乎都是標准鍵盤,不光是在 Vim 下讓你難受,其他的地方也是如此,因為 ESC 太常用了,而且沒有第二替代鍵。

  2. 使用 Ctrl-[ 組合鍵:它的功能和 ESC 完全等價,只是組合鍵稍微困難一些。這里的竅門是 Ctrl 鍵的位置,我會把它重新映射到 CapsLock 鍵上去。這樣一來兩手的小指稍微移動就可以完成,稍加訓練即可熟練掌握。這也是我不推薦 ESC 的第二個原因,至於之前提到過的鍵位映射帶來的后遺症,不要緊,鍵盤上都有不止一個的 Ctrl 鍵,你根本無需調整鍵位。

  3. 使用 Ctrl-c 組合鍵:看起來它似乎比 Ctrl-[ 更容易一些,但是它們的含義有很大的差別。在終端下 Ctrl-c 的意思是“中斷”,基本上它會中止所有正在運行的命令,當然它也可以在 Vim 里帶我們中斷一切操作返回默認的常規模式。但是 Vim 有一些操作其實是依賴正常的返回方法的,也就是 ESC 或者 Ctrl-[,使用 Ctrl-c 會導致這樣的功能無法被有效觸發(有不少插件依賴這些觸發功能,所以要小心莫名其妙的問題)。總而言之這是最不推薦的方法,除非你心里很有數,並且能在正確的時候使用前面兩種方法。

  好的,模式的介紹就此打住,在真正玩之前,特別建議要學會VIm的移動指令:Vim 的基本移動就是 h j k l 這四個鍵,分別代表    

1 h 光標左移 2 j 光標下移 3 k 光標上移 4 l    光標右移    

  很特別是嗎?好吧,我承認是很古怪。然而你必須要習慣它們,並且永遠不要更改它們的鍵位!這樣你就可以沒有小鍵盤的情況下也可以快速的移動,當然,最主要的是你還可以手指不用怎么大幅度的移動。至於為什么要這么設計?好像鍵盤都是這么設計的吧。不信的話戳這里。

  很不好記,很難練是么?不想練習是么?沒事,下面給你四個有趣的東西,相信你會不知不覺愛上這些方向鍵的:

  1. Vim Adventures 這是一款在線游戲,玩法超級簡單,控制鍵都是 Vim 的移動指令。你所要做的就是把鍵盤當成手柄,移動一個陰影來尋找字母、人物、寶藏、鑰匙等等。如果你無法過關也沒有關系,重要的是控制方向這個環節能夠把它練習到無需思考且不會犯錯就可以了。
  2. Vim Snake 如果你覺得上一個游戲有點難,因為無法過關讓你有挫折感的話,這個游戲就簡單多了——貪吃蛇,誰不會玩?只不過你只能用 h j k l 來控制方向而已。注意,只有在插入模式(i)才能吃到東西,只有在常規模式(ESC)才能移動方向。完整的流程如下:移動 -> 對准目標 -> 按下 i 直到吃到目標 -> 迅速按下 ESC -> 移動。關於模式,我們下次解釋。
  3. Open Vim Tutorials 如果以上兩款游戲都讓你為難的話(喂,你不是吧?!),那么這就是你的救星啦。請直接跳到第三章練習四方向移動,等到開始習慣這種感覺了再繼續挑戰游戲。
  4. Vim Genius 這也是好東西,它比上一個更貼近 Vim 的哲學。它不讓你看到要按哪個鍵,而是給你文字提示讓你盲打對應的鍵,其好處是鍛煉自己的肌肉記憶和條件反射思維。然而它比較依靠你的自控能力與耐心,另外英文不好也會有點拖累。

  至此,Vim的大門已經打開,此次介紹也就到此結束了。

  以上。Enjoy Vim!

 

PS:本博客歡迎轉發,但請注明博客地址及作者,因本人水平有限,若有不對之處,歡迎指出,謝謝~

  博客地址:http://www.cnblogs.com/voidy/

  博客新址:http://voidy.net

  <。)#)))≦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM