- 論壇徽章:
- 1
|
雖然用得不熟,還是推薦大家學(xué)習(xí)*^_^*
vi全屏幕編輯器
vi(Visual)是以視覺為導(dǎo)向的全屏幕編輯器、共分為三種方式(mode):
command方式:
?任何輸入都會(huì)作為編輯命令,而不會(huì)出現(xiàn)在屏幕上,若輸入錯(cuò)誤則有“岬”的聲音;任何輸入都引起立即反映
insert方式:
?任何輸入的數(shù)據(jù)都置于編輯寄存器。在command方式下輸入(I,a,A等),可進(jìn)入insert方式,insert方式下按ESC,可跳回command方式。
escape方式:
以“:”或者“/”為前導(dǎo)的指令,出現(xiàn)在屏幕的最下一行,任何輸入都被當(dāng)成特別指令。
進(jìn)入vi(在系統(tǒng)提示符下面輸入以下指令):
vi ????????? 進(jìn)入vi而不讀入任何文件
vi filename????? 進(jìn)入vi并讀入指定名稱的文件(新、舊文件均可)。
vi +n filename????進(jìn)入vi并且由文件的第幾行開始。
vi +filename ???? 進(jìn)入vi并且由文件的最后一行開始。
vi + /word filename ?進(jìn)入vi并且由文件的word這個(gè)字開始。
vi filename(s) ??? 進(jìn)入vi并且將各指定文件列入名單內(nèi),第一個(gè)文件先讀入。
vedit???????? 進(jìn)入vi并且在輸入方式時(shí)會(huì)在狀態(tài)行顯示“INSERT MODE"。
編輯數(shù)個(gè)文件(利用vi filename(s))進(jìn)入vi后)
:args ????????顯示編輯名單中的各個(gè)文件名
:n??????????讀入編輯名單中的下一個(gè)文件
:rew?????????讀入編輯名單中的第一個(gè)文件
:e#????????? 讀入編輯名單內(nèi)的前一個(gè)文件
:e file ???????讀入另一個(gè)文件進(jìn)vi(此文件可不在編輯名單內(nèi)),若原文件經(jīng)修改還沒有存檔,則應(yīng)先以: w 存檔。
:e! file???????強(qiáng)迫讀入另一個(gè)文件進(jìn)入vi,原文件不作存檔動(dòng)作。
存儲(chǔ)及退出vi
:w filename????? 存入指定文件,但未退出vi(若未指定文件名則為當(dāng)前工作的文件名)。
:wq 或者 或者zz?? 存文件,并且退出vi.
:q??????????不作任何修改并退出vi。
:q!????????? 放棄任何修改并退出vi。
:!command?????? 暫時(shí)退出vi并執(zhí)行shell指令,執(zhí)行完畢后再回到vi。
:sh????????? 暫時(shí)退出vi到系統(tǒng)下,結(jié)束時(shí)按Ctrl + d則回到vi。
加數(shù)據(jù)指令
i?????????? 在關(guān)標(biāo)位置開始插入字符,結(jié)束時(shí)候按ESC鍵。
I?????????? 在光標(biāo)所在行的最前面開始加字,結(jié)束時(shí)按ESC鍵。
a?????????? 在光標(biāo)位置后開始加字,結(jié)束時(shí)按ESC鍵。
A?????????? 在光標(biāo)所在行的最后面開始加字,結(jié)束時(shí)按ESC鍵。
o?????????? 在光標(biāo)下加一空白行并開始加字,結(jié)束時(shí)按ESC鍵。
O?????????? 在光標(biāo)上加一空白行并開始加字,結(jié)束時(shí)按ESC鍵。
!command???????執(zhí)行shell指令,并把結(jié)果加在光標(biāo)所在行的下一行。
刪除指令
nx??????????刪除由光標(biāo)位置起始的n個(gè)字符(含光標(biāo)位置,按一個(gè)x表示刪除光標(biāo)所在的字符)
nX ????????? 刪除由光標(biāo)位置起始的n個(gè)字符(不含光標(biāo)位置)。
ndw????????? 刪除光標(biāo)位置其實(shí)的n個(gè)字符組(word)。
d0 ????????? 將行的開始到光標(biāo)位置的字符全部刪除。
d$ 或D ??????? 將光標(biāo)位置起始到行尾的字符全部刪除。
ndd ?????????將光標(biāo)位置起始的n行(整行)刪除(dd表示刪除光標(biāo)所在行)。
:start,endd????? 刪除文件的第start到end行。
關(guān)標(biāo)移動(dòng)
0 ??????????移到一行的開始
$ ??????????移到一行的最后
[?????????? 移到文件開始位置
]?????????? 移到文件結(jié)束位置
nh??????????往左移n位
nl或者spacebar ??? 往右移n位
nk??????????向上移n行
n+??????????向上移n行,光標(biāo)在該行的起始
ni ????????? 向下移n行
n-??????????向下移n行,光標(biāo)在該行的起始
H?????????? 移到屏幕的左上角
M?????????? 移到屏幕的中間行開頭
L?????????? 移到屏幕的最后一行
G?????????? 移到文件的最后一行
nG或者:n???????移到文件的第n行
nw??????????右移n個(gè)字組,標(biāo)點(diǎn)符號屬于字組
nW??????????右移n個(gè)字組,標(biāo)點(diǎn)符號不屬于字組
nb??????????左移n個(gè)字組,標(biāo)點(diǎn)符號屬于字組
nB??????????左移n個(gè)字組,標(biāo)點(diǎn)符號不屬于字組
Ctrl + u???????屏幕上卷半個(gè)菜單
Ctrl + d ?????? 屏幕下卷半個(gè)菜單
Ctrl + b ?????? 屏幕上卷一個(gè)菜單
Ctrl + F ?????? 屏幕下卷一個(gè)菜單
修改指令
r?????????? 修改光標(biāo)文件的字符
R?????????? 從光標(biāo)位置開始修改,結(jié)束時(shí)按ESC鍵
new????????? 更改n組字符,結(jié)束時(shí)按ESC鍵
ncc????????? 從光標(biāo)所在位置開始更改n行,結(jié)束時(shí)按ESC鍵
重排各行長度
i?????????? 并按Enter將該行由光標(biāo)所在處斷開,并進(jìn)入insert方式
J ??????????把下一行的數(shù)據(jù)連接到本行之后
尋找指令
/text???????? 從光標(biāo)位置往下找字串text
?text???????? 從光標(biāo)位置往上找字串text
n?????????? 繼續(xù)找下一個(gè)字串(在輸入上面的尋找指令之后使用)
尋找并且取代指令
:getxt1/s/ /text2/options ??將各行的text1替換為text2
???????????????option=g表示文件中所有的text1均被取代,若未輸入任何option,則只有???????????????各行中的第一個(gè)出現(xiàn)的text1被取代
???????????????option=go 在屏幕顯示各取代的行
???????????????option=gc 在每個(gè)字串取代之前要求確認(rèn)?
Start,endgtext1/s/ / text2/options ?同上,只尋找并取代第start~end行。
或:Start,ends/text1/text2/options
復(fù)制及移動(dòng)文件
:first,last co dest ?????將first 到last行的數(shù)據(jù)復(fù)制到目標(biāo)行(dest)下面
:Start,end?m dest??????將start 到 end行的數(shù)據(jù)移動(dòng)到目標(biāo)行(dest)下。???
:r filename????????? 將指定文件的內(nèi)容讀入光標(biāo)所在行下。
nY ????????????? 將光標(biāo)所在位置開始的n行數(shù)據(jù)暫存
p?????????????? 復(fù)制暫存數(shù)據(jù)在光標(biāo)的下一行
P?????????????? 復(fù)制暫存數(shù)據(jù)在光標(biāo)的上一行
其他命令
.?????????????? 重復(fù)前一指令
u?????????????? 取消前一指令
Ctrl + l???????????刷新屏幕顯示
:set number????????? 顯示文件的行號,但不會(huì)存文件
:set nonumber???????? 解除行號顯示
:set ai??????????? 設(shè)置每行起始位置(以光標(biāo)當(dāng)前位置為起始)
:set noai?????????? 取消行起始位置設(shè)定
:f 或<Ctrl>; + g??????? 告訴用戶有關(guān)現(xiàn)行編輯文件的數(shù)據(jù)。
|
|