文本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多,論壇里好像這方面的總結不多,以下稍做總結,以資共享!渴望更正和補充!
進入vi的命令;
vi filename:打開或者新建文件,並將光標置於第一行首
vi +n filename:打開文件,並將光標置於第n行首
vi + filename:打開文件,並將光標置於最后一行首
vi +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處
vi -r filename:在上次用vi編輯時發生系統崩潰,恢復filename
移動光標類命令;
h:光標左移一個字符
l:光標右移一個字符
space:光標右移一個字符
backspace:光標左移一個字符
k或Ctrl+p:光標上移一行
j或Ctrl+n:光標下移一行
enter:光標下移一行
w或W:光標右移一個字至字首
b或B:光標左移一個字至字首
e或E:光標右移一個字至字尾
):光標移至句尾
(:光標移至句首
}:光標移至段落結尾
{:光標移至段落開頭
nG:光標移至第n行首
n+:光標下移n行
n-:光標上移n行
n$:光標移至第n行尾
H:光標移至屏幕頂行
M:光標移至屏幕中間行
L:光標移至屏蔽底行
0:(注意是數字零)光標移至當前行首
$:光標移至當前行尾
屏幕翻滾類命令;
ctrl+u:向文件首翻半屏
ctrl+d:向文件尾翻半屏
ctrl+f:向文件尾翻一屏
ctrl+b:向文件首翻一屏
nzz:將第n行滾至屏幕頂部
插入文本類命令;
i:在光標前
I:在當前光標所在行行首
a:在光標后
A:在當前光標所在行行尾
o:在當前光標所在行下新開一行
O:在當前光標所在行上新開一行
r:替換當前字符(選中字符輸入r后,則選中字符可被下次輸入的字符替換)
R:替換當前字符及其后的字符,直至ESC鍵(選中字符輸入R后,則選中字符及之后的字符可被下次輸入的字符替換)
s:刪除當前光標選中的字符,並輸入想要替代的一個或者多個字符
S:刪除當前光標選中的這行字符,並輸入想要替代的字符
nC: 刪除含光標所在行在內,光標下n行的字符
復制刪除命令;
yy:復制當前光標所在行所有字符
nyy:復制包含當前光標所在行在內的之后n行字符
p:在當前光標所在行的下一行粘貼之前復制的字符
d$:刪除當前光標所在字符及光標之后這行的字符
dd:刪除當前光標所在行
ndd:刪除含當前光標所在行以內的以下的n行字符
x或X:刪除一個字符,x刪除光標后的字符,X刪除光標前的字符
dG:刪除當前光標所在行以及之后所有的字符
搜索以及替換命令;
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g :將當前行中所有p1均用p2代替
:n1,n2s/p1/p2/g :將第n1至第n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
選項設置;
all:列出所有選項設置情況
number:顯示出當前光標所在行的行數
list:顯示制表位(ctrl+I)和行尾標志($)
set nu:顯示所有行的行數
最后行方式命令;
:q:退出vi
:q!:不保存文件並退出vi
:x:保存當前文件並退出
:w:保存但是不退出
:wq:保存並退出
:e filename :打開文件filename 進行編輯
:n1,n2 d:將n1行到n2行之間的內容(包含第n1,n2行)刪除(如果只有n1則只刪除n1)
:n1,n2 m n3:將n1行到n2行之間的內容(包含第n1,n2行)移動到第n3行下(移動相當於剪切)
:n1,n2 co n3:將n1行到n2行之間的內容(包含第n1,n2行)拷貝到第n3行下(拷貝也就是復制)
:e! 放棄當前的所有修改,重新打開這個文件
vi_刪除全部文本
:1,$d
:.,$d 這個需要光標在第一行才可以。