Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。1999 年Emacs被選為Linuxworld文本編輯分類的優勝者,Vim屈居第二。但在2000年2月Vim贏得了Slashdot Beanie的最佳開放源代碼文本編輯器大獎,又將Emacs推至二線,實現大反轉!
設計理念:
命令組合:vim的設計理念是命令的組合;例如普通模式命令"dd"刪除當前行,"dj"代表刪除到下一行,原理是第一個"d"含義是刪除,"j"鍵代表移動到下一行,組合後"dj"刪除當前行和下一行。另外還可以指定命令重複次數,"2dd",和"dj"的效果是一樣的。"d^","^"代表行首,故組合後含義是刪除到光標開始到行首間的內容;"d$" $"代表行尾,刪除到行尾的內容;用戶學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,並且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。
模式間的組合:在普通模式中,有很多方法可以進入插入模式。比較普通的方式是按"a"(append/追加)鍵或者"i"(insert/插入)鍵。
可視模式和命令模式
可視模式:此模式下可以先選擇文本的區域然後再使用命令來操作;因為可視模式下選擇區域很難轉換成普通方法,所以不要像我學習的時候那樣用的那麼頻繁。然而有很多針對可視模式有用的插件。
命令模式:是Vim的主要模式。它本質上像ed這種原始的行編輯器。:17,25d在不移動鼠標情況下刪除17到25行。:-3t.複製當行的前面三行。:v/foobar/s/thang/thing/g 將不含有“foobar”的文檔裡所有“thang”替換為 “foobar”,也可以使用所有存儲的正則表達式。
Vim使用方法
- 移動光標的方法:
[Ctrl]+[f]:屏幕向下移動一頁,相當於[PageDown]按鍵。
[Ctrl]+[b]:屏幕向上移動一頁,相當於[PageUp]按鍵。
0或功能鍵[Home]:移動到這一行的最前面字符處。
$或功能鍵[End]:移動到這一行的最後面字符處。
G:移動到這個文件的最後一行。
gg:移動到這個文件的第一行,相當於1G。
N[Enter]:N為數字,光標向下移動N行。
- 查找和替換:
/word:向下尋找一個名稱為word的字符串。
?word:向上尋找一個名稱為word的字符串。
:n1,n2s/word1/word2/g:在第n1行和n2行之間尋找word1這個字符串,並且將其替換為word2。
:1,$s/word1/word2/g:從第一行到最後一行尋找word1這個字符串,並且將其替換為word2。
:1,$s/word1/word2/gc:從第一行到最後一行尋找word1這個字符串,並且將其替換為word2.且在替換前顯示提示字符給用戶確認是否需要替換。
- 刪除、複製和粘貼:
x,X:在一行字中,x為向後刪除一個字符(相當於[Del]鍵),X為向前刪除一個字符(相當於[Backspace])。
dd:刪除光標所在的一整行。
ndd:刪除光標所在的向下n行。
yy:複製光標所在的一行。
nyy:複製光標所在的向下n行。
p,P:p為將已複製的內容在光標的下一行粘貼,P則為粘貼在光標的上一行。
u:復原前一個操作。
[Ctrl]+r:重做上一個操作。
.:小數點,重複前一個操作。
- 一般模式切換到編輯模式:
i,I:進入插入模式,i為從目前光標所在處插入。I為在目前所在行的第一個非空格字符處開始插入。
a,A:進入插入模式。a為目前光標所處的下一個字符處開始插入。A為從所在行的最後一個字符處開始插入。
o,O:進入插入模式。o為在下一行插入。O為在上一行插入。
r,R:進入替換模式。r只替換光標所在那個字符一次。R會一直替換光標所在字符,直到按下Esc鍵。
- 一般模式切換到命令行:
:q:離開vi.後面加!為強制離開。
:wq:保存後離開。:wq!為強制保存後離開。
總結
一旦你習慣於Vim的移動命令,你會樂在其中。當然了你也可以直接使用鼠標,但如果你能熟練使用Vim移動命令,你將很少用鼠標了。手一直在鍵盤上比時不時騰出手來操作鼠標操作要會更快很多,鐵桿Vim用戶會重新映射Escape 鍵到其他更加方便的功能。
閱讀更多 咱小二 的文章