05.18 編輯器之神——Vim

編輯器之神——Vim

Vim普遍被推崇為類Vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不同變體。1999 年Emacs被選為Linuxworld文本編輯分類的優勝者,Vim屈居第二。但在2000年2月Vim贏得了Slashdot Beanie的最佳開放源代碼文本編輯器大獎,又將Emacs推至二線,實現大反轉!

編輯器之神——Vim

設計理念

命令組合:vim的設計理念是命令的組合;例如普通模式命令"dd"刪除當前行,"dj"代表刪除到下一行,原理是第一個"d"含義是刪除,"j"鍵代表移動到下一行,組合後"dj"刪除當前行和下一行。另外還可以指定命令重複次數,"2dd",和"dj"的效果是一樣的。"d^","^"代表行首,故組合後含義是刪除到光標開始到行首間的內容;"d$" $"代表行尾,刪除到行尾的內容;用戶學習了各種各樣的文本間移動/跳轉的命令和其他的普通模式的編輯命令,並且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高效的進行文本編輯。

編輯器之神——Vim

模式間的組合:在普通模式中,有很多方法可以進入插入模式。比較普通的方式是按"a"(append/追加)鍵或者"i"(insert/插入)鍵。

可視模式和命令模式

可視模式:此模式下可以先選擇文本的區域然後再使用命令來操作;因為可視模式下選擇區域很難轉換成普通方法,所以不要像我學習的時候那樣用的那麼頻繁。然而有很多針對可視模式有用的插件。

編輯器之神——Vim

命令模式:是Vim的主要模式。它本質上像ed這種原始的行編輯器。:17,25d在不移動鼠標情況下刪除17到25行。:-3t.複製當行的前面三行。:v/foobar/s/thang/thing/g 將不含有“foobar”的文檔裡所有“thang”替換為 “foobar”,也可以使用所有存儲的正則表達式。

編輯器之神——Vim

Vim使用方法

  • 移動光標的方法:

[Ctrl]+[f]:屏幕向下移動一頁,相當於[PageDown]按鍵。

[Ctrl]+[b]:屏幕向上移動一頁,相當於[PageUp]按鍵。

0或功能鍵[Home]:移動到這一行的最前面字符處。

$或功能鍵[End]:移動到這一行的最後面字符處。

G:移動到這個文件的最後一行。

gg:移動到這個文件的第一行,相當於1G。

N[Enter]:N為數字,光標向下移動N行。

編輯器之神——Vim

  • 查找和替換:

/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.且在替換前顯示提示字符給用戶確認是否需要替換。

編輯器之神——Vim

  • 刪除、複製和粘貼:

x,X:在一行字中,x為向後刪除一個字符(相當於[Del]鍵),X為向前刪除一個字符(相當於[Backspace])。

dd:刪除光標所在的一整行。

ndd:刪除光標所在的向下n行。

yy:複製光標所在的一行。

nyy:複製光標所在的向下n行。

p,P:p為將已複製的內容在光標的下一行粘貼,P則為粘貼在光標的上一行。

u:復原前一個操作。

[Ctrl]+r:重做上一個操作。

.:小數點,重複前一個操作。

編輯器之神——Vim

  • 一般模式切換到編輯模式:

i,I:進入插入模式,i為從目前光標所在處插入。I為在目前所在行的第一個非空格字符處開始插入。

a,A:進入插入模式。a為目前光標所處的下一個字符處開始插入。A為從所在行的最後一個字符處開始插入。

o,O:進入插入模式。o為在下一行插入。O為在上一行插入。

r,R:進入替換模式。r只替換光標所在那個字符一次。R會一直替換光標所在字符,直到按下Esc鍵。

  • 一般模式切換到命令行:

:q:離開vi.後面加!為強制離開。

:wq:保存後離開。:wq!為強制保存後離開。

編輯器之神——Vim

總結

一旦你習慣於Vim的移動命令,你會樂在其中。當然了你也可以直接使用鼠標,但如果你能熟練使用Vim移動命令,你將很少用鼠標了。手一直在鍵盤上比時不時騰出手來操作鼠標操作要會更快很多,鐵桿Vim用戶會重新映射Escape 鍵到其他更加方便的功能。

編輯器之神——Vim


分享到:


相關文章: