命令模式: 移動光標spa
h 或向左方向鍵 光標向左移動一個字符orm
j 或向下方向鍵 光標向下移動一個字符ci
k 或向上方向鍵 光標向上移動一個字符字符串
l 或向右方向鍵 光標向右移動一個字符it
[Ctrl] + [f] 屏幕『向前』移動一頁(經常使用)form
[Ctrl] + [b] 屏幕『向後』移動一頁(經常使用)file
[Ctrl] + [d] 屏幕『向前』移動半頁gc
[Ctrl] + [u] 屏幕『向後』移動半頁command
+ 光標移動到非空格符的下一列im
- 光標移動到非空格符的上一列
n<space> 按下數字後再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20<space> 則光標會向後面移動 20 個字符距離。
0 這是數字『 0 』:移動到這一行的最前面字符處
$ 移動到這一行的最後面字符處
H 光標移動到這個屏幕的最上方那一行
M 光標移動到這個屏幕的中央那一行
L 光標移動到這個屏幕的最下方那一行
G 移動到這個文件的最後一行
nG 移動到這個文件的第 n 行。例如 20G 則會移動到這個文件的 20 行
n<Enter> 光標向下移動 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 !且在取代前顯示提示字符給使用者確認(conform)是否須要取代!(經常使用)
通常模式: 刪除、複製與貼上
x, X
x 爲向後刪除一個字符, X 爲向前刪除一個字符(經常使用)
nx
向後刪除 n 個字符
dd
刪除遊標所在的那一整列(經常使用)
ndd
刪除光標所在的向下 n 列,例如 20dd 則是刪除 20 列(經常使用)
d1G
刪除遊標所在到第一行的全部數據
dG
刪除遊標所在到最後一行的全部數據
yy
複製遊標所在的那一行(經常使用)
nyy
複製光標所在的向下 n 列,例如 20yy 則是複製 20 列(經常使用)
y1G
複製遊標所在列到第一列的全部數據
yG
複製遊標所在列到最後一列的全部數據
p, P
p 爲複製的數據在光標下一行貼上,P 則爲貼在遊標上一行!(經常使用)
J
將光標所在列與下一列的數據結合成同一列
c
重複刪除多個數據,例如向下刪除 10 行,[ 10cj ]
u
復原前一個動做。(經常使用)
進入編輯模式
i, I
插入:在目前的光標所在處插入輸入之文字,已存在的文字會向後退;
a, A
增長:由目前光標所在的下一個字開始輸入,已存在的文字會向後退:
o, O
插入新的一行:從光標所在的下一行枝行首開始輸入文字;(經常使用)
r, R
取代:r 會取代光標所在的那一個字符;R會一直取代光標所在的文字,直到按下 ESC 爲止;
Esc
退出編輯模式,回到通常模式中
指令列命令模式
:w
將編輯的數據寫入硬盤文件中(經常使用)
:w!
若文件屬性爲『只讀』時,強制寫入該文件
:q
離開 vi (經常使用)
:q!
若曾修改過文件,又不想儲存,使用 ! 爲強制離開不儲存文件。
:wq
儲存後離開,若爲 :wq! 則爲強制儲存後離開(經常使用)
:e!
將文件還原到最原始的狀態!
ZZ
若文件沒有更動,則不儲存離開,若文件已經通過更動,則儲存後離開!
:w [filename]
將編輯的數據儲存成另外一個文件(相似另存新檔)
:r [filename]
在編輯的數據中,讀入另外一個文件的數據。亦即將『filename』這個文件內容加到遊標所在行後面
:set nu
顯示行號,設定以後,會在每一行的前綴顯示該行的行號
:set nonu
與 set nu 相反,爲取消行號!
n1,n2 w [filename]
將 n1 到 n2 的內容儲存成 filename 這個文件。
:! command
暫時離開 vi 到指令列模式下執行command 的顯示結果!例如[ :! ls /home ]