玩轉Vim-札記(一)

玩轉Vim-札記(一)html

  簡介編程

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

初窺門徑服務器

  要想玩嘛,首先須要先安裝一個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的兩種模式吧。spa

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

  常規模式:能夠進行編輯,對已存在的文字進行一些操做,包括:複製,剪切,移動,修改,刪除,格式化等等。插件

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

  而大部分的編輯器都只有一種模式,以上兩部分的操做合併在一塊兒進行,這就是爲何會有菜單和按鈕的緣由,而對於文字的範圍選擇也須要額外的方法來輔助,好比快捷鍵和鼠標操做等。不管是什麼樣的狀況咱們都不得不迫使大腦在思考(輸入)和尋找(編輯)中不停轉換,即便你不在乎這一點,始終有一些操做你是沒法流水化的。好比說:在光標隨意停留在某處的時候,你能閉着眼睛用鼠標點擊到某個功能嗎?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

  <。)#)))≦

相關文章
相關標籤/搜索