玩轉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:在當前行上面插入一個新行
那麼如何從插入模式進到常規模式,最多見的有三種:
使用 ESC
鍵:這是最通用的方法,它惟一的缺點就是距離標準鍵位較遠,然而因爲它的位置在左上角,因此你也能夠作一些強化練習來準確的找到它。記住:不要看鍵盤去找,要造成肌肉記憶!也有不少人偏好修改 ESC
鍵位,好比說把它轉移到 CapsLock
,即大寫鎖定鍵上去,這是可取的,而且也十分有效,然而我不推薦這麼作。由於修改鍵位相對來講麻煩一些,在某些場景會讓你頗感不便。好比說你去客戶那裏安裝服務器,遇到的幾乎都是標準鍵盤,不光是在 Vim 下讓你難受,其餘的地方也是如此,由於 ESC
太經常使用了,並且沒有第二替代鍵。
使用 Ctrl-[
組合鍵:它的功能和 ESC
徹底等價,只是組合鍵稍微困難一些。這裏的竅門是 Ctrl
鍵的位置,我會把它從新映射到 CapsLock
鍵上去。這樣一來兩手的小指稍微移動就能夠完成,稍加訓練便可熟練掌握。這也是我不推薦 ESC
的第二個緣由,至於以前提到過的鍵位映射帶來的後遺症,沒關係,鍵盤上都有不止一個的 Ctrl
鍵,你根本無需調整鍵位。
使用 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 光標右移
很特別是嗎?好吧,我認可是很古怪。然而你必需要習慣它們,而且永遠不要更改它們的鍵位!這樣你就能夠沒有小鍵盤的狀況下也能夠快速的移動,固然,最主要的是你還能夠手指不用怎麼大幅度的移動。至於爲何要這麼設計?好像鍵盤都是這麼設計的吧。不信的話戳這裏。
很很差記,很難練是麼?不想練習是麼?沒事,下面給你四個有趣的東西,相信你會不知不覺愛上這些方向鍵的:
h
j
k
l
來控制方向而已。注意,只有在插入模式(i
)才能吃到東西,只有在常規模式(ESC
)才能移動方向。完整的流程以下:移動 -> 對準目標 -> 按下 i
直到吃到目標 -> 迅速按下 ESC
-> 移動。關於模式,咱們下次解釋。至此,Vim的大門已經打開,這次介紹也就到此結束了。
以上。Enjoy Vim!
PS:本博客歡迎轉發,但請註明博客地址及做者,因本人水平有限,如有不對之處,歡迎指出,謝謝~
博客地址:http://www.cnblogs.com/voidy/
博客新址:http://voidy.net
<。)#)))≦