Vim 是一個很強大的文字編輯器,結合了很多快捷指令能夠大幅增加編輯文件的速度,但是很多人因爲指令太多而卻步。
本篇文章有兩個部分
第一部分給只是想要能夠"用" Vim,完成基本的編輯文件任務的人參考。
而如果想要提升自己的編輯速度,建議參考第二篇,因爲 vim 的指令很多很雜,希望透過座標軸的方式建立指令的方向概念,幫助大家理解。
vim file
i
這樣會進入編輯模式,因此你可以在這個編譯器上面結合方向鍵輸入任何你想輸入的字元。
按鍵盤左上角的 ESC 退出編輯模式之後會到指令列命令模式,接着輸入 :wq
儲存檔案並退出就可以了。
你覺得這樣就結束了嗎?
此時只是vim皮一般編輯器骨而已,vim 這個編輯器最強大的特點是編輯速度極快,要能觸發這項特點必須結合許多快捷指令。
這三種模式可以透過 esc 做切換,不過只有編輯模式還有指令列模式不能相互影響就是了,如下圖所示:
如果你想要像使用滑鼠編輯文件一般上手,可以參考以下功能
一開始先介紹三個指令
:! command
:暫時離開 vim 編輯器執行 command 結果,之後可以再按 Enter 回到 vim 中。set nu
:顯示行號set nonu
:取消顯示行號之後建議顯示行號,會比較好辨認哪一列。
首先要先瞭解如何透過鍵盤控制游標的位置,藍色x軸代表現在所在的列,而紅色系的y軸代表檔案中的每一列。
下方座標軸的原點是該列中現在游標所在的位置,如果要讓游標向右三個字元,可以輸入3<space>
也就是輸入數字3之後再按空白鍵。
按 end
或 $
可以前往這列的末端,home
或是0
則可以前往該列的首端。
紅色軸代表這個檔案中的操作,因此輸入 1G
代表前往檔案第一列的第一個字元,G
則是前往檔案末端的第一個字元。
粉紅色軸代表在目前螢幕中的操作,因此輸入H
可以抵達目前螢幕第一列的第一個字元,L
則是前往螢幕最末列的第一個字元。
理解了上述文字之後,只要透過座標軸就能知道相應的行爲應該如何輸入指令囉。
有了游標移動的觀念之後,就可以應用在接下來的指令了,y
代表複製,因此 y$
代表在游標移動到該列的最末端時,同時複製文字,同理y0
就只是相反方向。
yy
代表複製游標所在該列的文字,nyy
代表向下複製 n 列,y1G
則是複製到檔案中的第一列,yG
則是複製到游標之下的最末列。
p
:在游標所在列的上面一行貼上內容P
:在游標所在列的下面一行貼上內容
d
控制列,而x
控制一行中每個字元。
d
關於方位的操作都跟複製文字的指令非常類似 ,而nx
代表刪除游標之後的 n 個字元 ,nX
代表刪除游標之前的 n個字元,複製的指令是不支援的。
如果要找目前游標上面所有列的文字 string,輸入?string
,游標下方則是輸入/string
。
找到所有可能文字之後透過n
來依序顯示結果,如果要查看上一個結果可以使用N
如果要用 word1 取代 n1 到 n2 列的文字 word的話,可以輸入:n1,n2s/word1/word2/gc
,加上c
的話取代前會先詢問你,以免發生悲劇
u
:復原上一個動作ctrl+R
:取消復原上一個動作.
:重複執行上一個動作
要執行以下指令,記得按 esc 切換到指令列模式:w
:儲存檔案:q
:離開檔案
如果檔案屬於唯讀檔案,可以加上 !
:wq
:存檔並離開
:n1,n2 w file
將 n1 到 n2 的內容儲存成 file 這個檔案