[語法]:vi [-wn] [-R] 文件...
[說明]: vi 是一個基於行編輯器 ex 上的全屏幕編輯器,可以在vi 中使用 ex,ed的全部命令,vi選項中 -wn 指將編輯窗口大小置爲n行,-R 爲將編輯的文件置爲只讀模式, vi 工作模式分爲命令模式和輸入模式,一般情況下在命令模式下,可敲入vi命令,進入輸入模式下時可以編輯要編輯的文本,命令 a A i I o O c C s S R 可進入輸入模式,在輸入模式下按 ESC 鍵可推出輸入模式,回到命令模式,在命令模式中敲入: 命令,則可進入ex方式,在屏幕底部出現提示符 : ,此時可使用任意ex命令,屏幕底行也用來作/ ? ! 命令的提示行,大多數命令可以在其前面加數字,表示命令執行的重複次數,下面簡單介紹一下vi 的命令集,^ 表示(CTRL)鍵
^B 退回前一頁,前面加數字表示重複次數,每次換頁時
保留上一頁的兩行
^D 在命令模式下,表示下滾屏幕的一半,在輸入模式下,表示回退至
左邊的自動縮進處
^E 顯示屏幕底線之下的一行
^F 前進一頁,前面加數字表示重複次數,每次換頁時
保留上一頁的兩行
^G 顯示當前文件名,當前行號和文件總行數,並用百分號當前行在
整個文件中的位置
^H(退格) 在命令模式下,光標左移一格;在輸入模式下,刪去前面的字符
^I(TAB) 在輸入模式下,產生一串空格
^J(LF) 光標下移一行
^L 刷新屏幕,即將屏幕重新顯示
^M(回車) 在命令模式下,光標移動至下行開頭
在輸入模式下,開闢一新行
^N 光標下移一行
^P 光標上移一行
^Q 在輸入模式下,將其後的非打印字符作爲正文插入
^R 刷新屏幕
^U 屏幕上滾一半,前面加數字時表示上滾的行數,此數字對
以後的^D ^U 命令有效
^V 在輸入模式下,將其後的非打印字符作爲正文插入
^W 在輸入模式下,使光標回退一個字
^Y 顯示屏幕底線之上的一行
^Z 暫停編輯,退回上層Shell
^[(ESC) 退出輸入模式,回到命令模式
! 暫時退出編輯,執行Shell命令
"(雙引號) 用於標誌有名緩衝區,編號緩衝區1-9用於保存被刪去的正文,字
母名緩衝區a-z供用戶存放自定義的正文
$ 將光標移動到當前行尾,前加數字則表示前移行數,如2$表示移動
到下一行行尾
% 將光標移動到配對的小括號()或大括號{}上去
( 退回句子開頭
) 前移到句子開頭
- 退到上一行第一個非空格字符
. 重複上一次改變緩衝區內容的命令
/ 模式 向前搜索模式,將光標移動到模式出現處,模式是一個正規
表達式,(參看 grep)
: 在屏幕底部提示:,其後可使用ex命令
? 功能同 / ,但方向是向前查找
[[ 光標回退至前一節分界處
\ 轉意符
]] 光標前移至節分界處
^(不是CTRL) 光標移至當前行第一個非空字符上
' 連續兩個''表示將光標移至其移動前的位置,'後跟字母表示光標字
母標記的行首(參看 m 命令)
A 在行尾插入正文,進入輸入模式
B 光標回退一個字
C 替換光標後的內容
D 刪除光標後的內容
E 光標前移到字尾
F 字符 在當前行向左查找指定字符
G 光標移動到其前面數字指定的行,若未指定則移動到最後一行
H 光標移動到屏幕頂行,若前面有數字,則移動到屏幕上該數字
指定的行
I 在行開頭插入正文
J 連接兩行,若前面有數字則連接數字指定的行
L 光標移動到屏幕底行,若前面有數字,則移動到屏幕底線往上數該
數字指定的行
M 光標移動到屏幕中線
N 使用模式查找/或?時,重複找下一個匹配的模式,但方向與上次相
反,其功能同 n ,但方向相反
O 在當前行上開闢一新行
P 將上次被刪除的正文插入光標前面,可在其前面加緩衝區編號,編
號1-9用於保存被刪去的正文,字母名緩衝區a-z供用戶存放自定
義的正文
Q 從vi 推出進入ex命令狀態
R 替換字符串
S 替換整行
T 字符 向左查找字符
U 將當前行恢復至第一次修改前的狀態
W 光標移至下一個字首
X 刪除光標前的字符
Y 將當前行存入無名緩衝區,前面加數字表示存入的行數,也可用有
名緩衝區來保存,以後可用命令p或P將其取出
ZZ 存盤退出vi
a 光標後插入正文
b 光標回退至上一個字首
cw 替換當前字
c) 替換當前句子
dw 刪除一個字
dd 刪除一行
e 光標移到下一個字末
f 字符 在當前行向前查找字符
h 光標左移一格
i 在光標前插入正文
j 光標下移一行
k 光標上移一行
l 光標右移一格
m 字母 用字母標記當前行,以後可用 '字母使光標移動到當前行,
(參看'命令)
n 重複上次 / 或 ? 命令
o 在當前行下開闢一新行
p 將用戶緩衝區內容放到光標位置(參看P命令)
r 替換當前字符
s 用一串字符替換當前字符
t 字符 光標移動至字符前
u 取消上次操作
w 光標移至下一字首
x 刪除當前字符
yw 將當前字存入無名緩衝區,前面可加"x,表示存入名字爲x的有名
緩衝區(x爲a-z),也可加數字表示存入的字數,以後可用P或p命
令取出
yy 將當前行存入無名緩衝區,用法參看yw
{ 光標移動至前一段開頭
| 光標移至行首,若前面加數字,則移到數字指定行的行首
} 光標移至下一段開頭
在:提示符下,常用命令如下:
:w 當前文件存盤
:w! 強制存盤
:w 文件 將內容寫入指定文件
:w! 文件 強制寫入指定文件
:x,y w 文件 將 x至 y 行寫入指定文件中
:r 文件 將文件讀到光標位置
:r ! 命令 將系統命令的輸出讀到光標位置
:q 退出編輯
:q! 強制退出
:x 與命令ZZ相同
:e 文件名 編輯另一文件
:e ! 重新編輯文件,放棄任何改變
:sh 執行sh,結束後回到編輯
:! 命令 執行命令後回到編輯
:n 編輯下一文件
:n 文件表 重新定義待編輯文件表
:set 設置 vi 的選項,例如 set nu 表示每行前顯示行號,在選項前
加no則表示清除該選項,例如 set nonu 表示每行前不顯示行
號,下面是一些常用的選項:
ai 自動縮進
aw 編輯下一文件前自動存盤
ic 查找字符串時不區分大小寫
nu 每行前顯示行號
sm 輸入)及}時顯示與之配對的( 或 {
slow 插入時延遲屏幕刷新
ws 使查找能繞過文件尾從頭進行
wa 寫文件之前不作對文件的檢查