當要建立或編輯一個文字檔, 可用此命令, 例鍵入 vi aaa 得如下之畫面 :
╭──────────╮
│_ │ <─ 游標位置
│~ │ ╮
│~ │ │
│~ │ │
│~ │ │
│~ │ │
│~ │ ├ 空行(Null)
│~ │ │
│~ │ │
│~ │ │
│~ │ │
│~ │ ╯
│"aaa" [New file] │ <─ 訊息列及冒號":"命令列
╰──────────╯
此時若要輸入字元, 需先鍵入命令 a、A、i、I、o、O 中的其中一個然後再輸入本文,
其中若鍵入 <┘將新增一行並可繼續輸入, 輸入完畢後要按下 ESC 鍵, 此時若要結束
存檔鍵入 :wq 即可。
以上程序包含了 vi 的主要三個模式 :
1. 命令模式 : 當進入 vi 時即在此模式下, 可鍵入任何命令, 如上例鍵入 i 命令。
2. 輸入模式 : 當要插入本文或修改字串時, 即須變入此模式, 如上例鍵入 i 命令後
之狀況, 結束時按下 ESC 鍵又回到命令模式。
3. :(冒號)命令模式 : 在命令模式鍵入:(冒號)則游標移至最下一列, 主要是鍵入 ex
之命令及其參數, 如上例 :wq。
基本的 vi 命令
==============
vi filename 編輯或建立檔案
vi +18 filename 開啟檔案到第 18 行
vi +/"mustard greens" filename 開啟檔案到第一個出現 "mustard green" 處
vi -r filename 編輯上次編輯中斷的檔案
view filename 開啟檔案為僅讀
h 向左移一個字元
j 向下移一個字元
k 向上移一個字元
l 向右移一個字元
w 向右移一個字
W 向右移一個字(通過標點符號)
b 向左移一個字
B 向左移一個字(通過標點符號)
Return 向下移一行
Backspace(倒退鍵) 向左移一個字元
Space Bar(空白鍵) 向右移一個字元
H 移至螢幕頂端
M 移至螢幕中間
L 移至螢幕底部
Ctrl-F 向前捲動一個螢幕
Ctrl-D 向前捲動半個螢幕
Ctrl-B 向後捲動一個螢幕
Ctrl-U 向後捲動半個螢幕
a 在游標右方插入字元
A 在行尾游標右方插入字元
i 在游標左方插入字元
I 在行首游標左方插入字元
o 在游標下面插入一行
O 在游標上面插入一行
cw 改變字 (一個字當中游標的右方部份)
cc 改變行
C 改變一行中游標右方的部份
s 以字串代替游標所在的字元
r 以另一字元代替游標所在的字元
r-Return 將行切斷
J 將目前行和下一行連結
xp 將游標所在字元與右邊字元對調
~ 改變字母大小寫
u 取消前一個命令
U 取消對行所作的所有改變
:u 取消前一個最後一行命令
x 刪除字元
dw 刪除字 (一個字當中游標的右方部份)
dd 刪除行
D 刪除本行中游標右邊的部份
:5,10 d 刪除第 5 行到第 10 行
yy yank 或複製行
v 选择复制块起点
y 选择复制块终点
P 將 yanked 或要刪除的行放在目前行的下面
p 將 yanked 或要刪除的行放在目前行的下面
:2,6 co 8 複製第 2 行到第 6 行並置於第 8 行後
:4,5 m 6 將第 4 行到第 5 行搬移至第 6 行後
:set nu 設定行號
:set nonu 隱藏行號
G 到檔案的最後一行
21G 到第 21 行
/string/ 搜尋字串
?string? 往回搜尋字串
n 找尋字串下一次出現的地方
:g/search-string/s//replace-string/g 搜尋字串並替換字串
Ctrl-L 清除螢幕
:r filename 讀取檔案於游標所在行以後
:34 r filename 34 行以後讀入檔案
:w 儲存檔案
:w filename 儲存於所指定的檔案
:wq 儲存內容並跳出 vi
ZZ 儲存內容並跳出 vi
:q! 跳出 vi 但不儲存內容