指令模式
移動游標
數字
+方向鍵
:朝方向移動指定行數數字
+enter
:向下移動指定行數ctrl + f
:pagedownctrl + b
:pageup+
到非空白字元的下一列-
到非空白字元的上一列0
到該行開頭$
到該行最後H
到螢幕的最上方第一個字M
到螢幕的中央第一個字L
到螢幕的最下方第一個字G
到檔案結尾gg
到檔案最開頭10G
到第10行
搜尋
/word
游標之後尋找word?word
游標之前尋找wordn
執行前一個搜尋動作N
反向執行前一個搜尋動作- 搜尋結果高亮顯示
:set hlsearch
開啟高亮:set nohlsearch
關閉高亮
取代
s/foo/bar
:當前行第一個foo換bar10,15s/foo/bar
:10~15行第一個foo換bar%s/foo/bar
:整份文件,每一行第一個foo換bar
%代表全域的意思
%s/foo/bar/g
:整份文件,每個foo都換bar%s/foo/bar/gc
:換之前,會再confirm一次- 範圍取代:先
V
進入visual mode,再使用上
下
選取一個範圍,然後:s/foo/bar/g
將這個範圍的foo都換bar
其他技巧
:%s/^M//g
消除unix window檔案結尾差異
指令模式下的編輯
x
向後刪除一個字元X
向前刪除一個字元10x
向後刪除10個字元dd
刪除一整列10dd
向下刪除10列d$
從游標所在處開始,向後刪除到底yy
複製該行,5yy
向下複製5行p
貼上P
在上一列貼上J
將下一列接到當前列後面.
點號,重複執行上一個指令u
上一步ctrl + r
下一步
選取模式
v
字元選擇V
列選擇ctrl + v
區塊選擇y
複製p
貼上d
刪除
編輯模式
Insert mode
i
從游標位置插入a
從游標的下一個位置插入I
從該列第一個非空白字元插入A
從該列最後一個非空白字元插入o
從下一列插入O
從上一列插入
Replace mode
r
取代游標所在字元(一次)R
取代游標所在字元(連續)
儲存,離開
:w
儲存:w!
強制儲存:q
離開:q!
不儲存離開:wq
儲存然後離開ZZ
離開,若檔案有變更就會儲存- 沒有冒號,指令模式下連續輸入兩個大寫Z
:w newfile
另存新檔,檔名為newfile:5,10 w newfile
將5~10行另存新檔,檔名為newfile:r file.txt
將file.txt的內容,直接插入到游標所在位置:! command
暫時離開vim執行command
多視窗編輯
:sp
將同一個檔案分成兩個視窗編輯:sp filename.txt
同時編輯filename.txtctrl + w
視窗切換- 先按
ctrl + w
再按方向鍵上
到上個視窗 - 先按
ctrl + w
再按方向鍵下
到下個視窗 - 先按
ctrl + w
再按q
關閉視窗
其他設定
VIM色彩
啟用 vim syntax colors
- Edit或Add
~/.vimrc
- 寫入以下指令:
syntax on
- 存檔離開
行號
顯示行號:set nu
取消行號:set nonu
若要變成預設模式須修改~/.vimrc
空白行加入set nu
自動縮排
啟用自動縮排:set autoindent
停用自動縮排:set noautoindent