作為一名嵌入式Linux開(kāi)發(fā)人員,vi編輯器肯定是大家平常使用最多的,也是大家在嵌入式Linux系統(tǒng)上使用最廣泛的編輯器。它是UNIX操作系統(tǒng)和類(lèi)UNIX操作系統(tǒng)中最通用的純文本編輯器。
這次我們來(lái)說(shuō)一下那些在vi編輯器中最常用的快捷鍵,熟練使用vi編輯器中的快捷鍵,可以使你的操作飛起來(lái)...當(dāng)然,這樣是最為一名Linux軟件開(kāi)發(fā)人員應(yīng)該具備的基本技能。
vi簡(jiǎn)介
vi編輯器是所有Unix及Linux系統(tǒng)下標(biāo)準(zhǔn)的編輯器,它的強(qiáng)大不遜色于任何的文本編輯器。是UNIX操作系統(tǒng)和類(lèi)UNIX操作系統(tǒng)中最通用的全屏幕純文本編輯器。Linux中的vi編輯器叫vim,它是vi的增強(qiáng)版,與vi編輯器完全兼容,而且實(shí)現(xiàn)了很多增強(qiáng)功能。Vi也是Linux中最基本的文本編輯器,學(xué)會(huì)它后,你可以在Linux的世界里暢行無(wú)阻。
vi可以分為三種模式,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區(qū)分如下:
命令行模式(command mode) 控制屏幕光標(biāo)的移動(dòng),字符、字或行的刪除,移動(dòng)復(fù)制某區(qū)段及進(jìn)入Insert mode下,或者到 last line mode。
插入模式(Insert mode) 只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。
底行模式(last line mode) 將文件保存或退出vi,也可以設(shè)置編輯環(huán)境,如尋找字符串、列出行號(hào)等等
有時(shí)我們將底行模式(last line mode)也算入命令行模式command mode)。
vi基本操作
進(jìn)入vi在系統(tǒng)終端中輸入vi和文件名稱(chēng)后,就進(jìn)入vi:
?
????vi?myfile
?
進(jìn)入vi之后,默認(rèn)是處于命令行模式(command mode),要切換到 插入模式(Insert mode) 才能夠編輯和輸入。初次使用vi的人都會(huì)想先用上下左右鍵移動(dòng)光標(biāo),進(jìn)入vi后,先轉(zhuǎn)換到插入模式(Insert mode) 再進(jìn)行編輯。
切換至插入模式(Insert mode)編輯文件在 命令行模式(command mode) 下按一下字母i就可以進(jìn)入插入模式(Insert mode),這時(shí)候你就可以開(kāi)始輸入文字了。同樣按a進(jìn)入插入模式后,是從目前光標(biāo)所在位置的下一個(gè)位置開(kāi)始輸入文字;按o進(jìn)入插入模式后,是插入新的一行,從行首開(kāi)始輸入文字。
Insert 的切換如果處于插入模式(Insert mode),按一下ESC鍵就可以轉(zhuǎn)到命令行模式(command mode)。
退出vi及保存文件在命令行模式(command mode)下,按一下:冒號(hào)鍵,例如::w filename (輸入w filename以指定的文件名filename保存):wq (輸入「wq」,存盤(pán)并退出vi):q! (輸入q!, 不存盤(pán)強(qiáng)制退出vi)
移動(dòng)光標(biāo)
可以直接用鍵盤(pán)上的光標(biāo)來(lái)上下左右移動(dòng),同樣vi是用小寫(xiě)英文字母h、j、k、l,分別控制光標(biāo)左、下、上、右移一格。
ctrl+b:屏幕往"后"移動(dòng)一頁(yè)
ctrl+f:屏幕往"前"移動(dòng)一頁(yè)
ctrl+u:屏幕往"后"移動(dòng)半頁(yè)
ctrl+d:屏幕往"前"移動(dòng)半頁(yè)
^:移動(dòng)到光標(biāo)所在行的"行首"
w:光標(biāo)跳到下個(gè)字的開(kāi)頭
e:光標(biāo)跳到下個(gè)字的字尾
b:光標(biāo)回到上個(gè)字的開(kāi)頭
#l:光標(biāo)移到該行的第#個(gè)位置,如:1l,23l
定位
:set nu:每行顯示行號(hào)
:set nonu:取消顯示行號(hào)
0:?jiǎn)涡惺?/p>
$:?jiǎn)涡心?/p>
H:屏幕頂
M:屏幕中
L:屏幕末行
gg:文件首行
G:移動(dòng)到文章的最后
n
n
nG=文件第n行
刪除
x:每按一次,刪除光標(biāo)所在位置的"后面"一個(gè)字符。
#x:例如6x表示刪除光標(biāo)所在位置的"后面"6個(gè)字符。
X:大寫(xiě)的X,每按一次,刪除光標(biāo)所在位置的"前面"一個(gè)字符。
#X:例如20X表示刪除光標(biāo)所在位置的"前面"20個(gè)字符。
dd:刪除光標(biāo)所在行。
#dd:從光標(biāo)所在行開(kāi)始刪除#行
復(fù)制
yw:將光標(biāo)所在之處到字尾的字符復(fù)制到緩沖區(qū)中。
#yw:復(fù)制#個(gè)字到緩沖區(qū)
yy:復(fù)制光標(biāo)所在行到緩沖區(qū)。
#yy:例如6yy表示拷貝從光標(biāo)所在的該行"往下數(shù)"6行文字。
p:將緩沖區(qū)內(nèi)的字符貼到光標(biāo)所在位置。注意:所有與"y"有關(guān)的復(fù)制命令都必須與"p"配合才能完成復(fù)制與粘貼功能。
查找
/str:向下查str
n:向下查下一個(gè)str
?str:向上查str
N:向上查下一個(gè)str
針對(duì)光標(biāo)停留處的特定的單詞,可以使用快捷鍵進(jìn)行向上和向下的搜索,Shift + 8,即*鍵,直接對(duì)光標(biāo)停留處的單詞進(jìn)行向下搜索;Shift + 3,即#鍵,直接對(duì)光標(biāo)停留處的單詞進(jìn)行向上搜索。
撤銷(xiāo)及恢復(fù)
u:相當(dāng)于windows中的"ctrl+z",undo
ctrl+r:相當(dāng)于windows中的"ctrl+y",于"ctrl+z"相反
.:點(diǎn)兒表示重復(fù)作剛才的動(dòng)作
保存
:w:寫(xiě)入硬盤(pán)
:w!:強(qiáng)制寫(xiě)入
:q:離開(kāi)vi
:q!:強(qiáng)制離開(kāi)vi,不存
:wq:存盤(pán)并離開(kāi)vi
:wq!:存盤(pán)并強(qiáng)制離開(kāi)
總結(jié)
好了,以上就是vi編輯器中常用的操作,熟練操作后你會(huì)發(fā)現(xiàn)vi編輯器原來(lái)是如此的絲滑。熟練使用vi編輯器會(huì)使你在平時(shí)的Linux系統(tǒng)操作中提高效率,達(dá)到事半功倍的效果。無(wú)它,為手熟而!平常中使用多了,自然而然的就熟練起來(lái),其他技術(shù)也是一樣。
?
審核編輯:湯梓紅
評(píng)論
查看更多