溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux vi編輯器的使用技巧有哪些

發(fā)布時(shí)間:2021-12-24 14:18:25 來源:億速云 閱讀:169 作者:iii 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容主要講解“l(fā)inux vi編輯器的使用技巧有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“l(fā)inux vi編輯器的使用技巧有哪些”吧!

一.linux vi編輯器簡介

linux vi編輯器是unix世界中最通用的全屏編輯器,linux中是用的是vi的加強(qiáng)版vim,vim同vi完全兼容,vi就是"visual interface"的縮寫。它可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據(jù)自己的需要對(duì)其進(jìn)行定制,這是其它編輯程序所沒有的。
vi不是一個(gè)排版程序,它不象Word或WPS那樣可以對(duì)字體、格式、段落等其他屬性進(jìn)行編排,它只是一個(gè)文本編輯程序。
vi沒有菜單,只有命令,且命令繁多。只要在命令行上鍵入vi就可進(jìn)入vi的編輯環(huán)境。vi有三種狀態(tài):命令模式,文本輸入模式和末行模式。鍵入vi回車后首先進(jìn)入vi的命令模式。
在命令模式下用戶輸入的任何字符都被Vi當(dāng)作命令加以解釋執(zhí)行,如果用戶要將輸入的字符當(dāng)作是文本內(nèi)容時(shí),則首先應(yīng)將Vi的工作模式從命令模式切換到文本輸入模式。在命令模式下,按一下"a"("A")鍵或者”i” ("I")或者"o"("O")鍵,即進(jìn)入插入態(tài)文本輸入模式。按"a"鍵,插入到當(dāng)前光標(biāo)的后面;按"i"鍵,在當(dāng)前光標(biāo)處插入;按"A"鍵,在當(dāng)前光標(biāo)所在行的***插入;按"I"鍵,在當(dāng)前光標(biāo)所在行的開頭插入。在文本輸入模式下,按Esc鍵,即回到命令模式。
末行模式也稱ex轉(zhuǎn)義模式。Vi有一個(gè)專門的“轉(zhuǎn)義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進(jìn)入末行模式下,此時(shí)Vi會(huì)在顯示窗口的***一行(通常也是屏幕的***一行)顯示一個(gè)“:”作為末行模式的提示符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令執(zhí)行完后,Vi自動(dòng)回到命令模式。

例如:
:1,$s /A/a/g
則從文件***行至文件尾將大寫A全部替換成小寫a。
若在末行模式下輸入命令過程中想轉(zhuǎn)換的到命令模式,可按鍵,或用退格鍵將輸入的命令全部刪除之后,再按一下退格鍵,即可使Vi回到命令模式下。
如果要從命令模式轉(zhuǎn)換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
Vi中的許多命令都要用到行號(hào)及行數(shù)等數(shù)值。若編輯的文件較大時(shí),自己去數(shù)是非常不方便的。為此Vi提供了給文本加行號(hào)的功能。這些行號(hào)顯示在屏幕的左邊,而相應(yīng)行的內(nèi)容則顯示在行號(hào)之后。 需要說明的是,這里加的行號(hào)只是顯示給用戶看的,它們并不是文件內(nèi)容的一部分。
當(dāng)用Vi建立一個(gè)新文件時(shí),在進(jìn)入Vi的命令中也可以不給出文件名,當(dāng)編輯完文件需要保存數(shù)據(jù)時(shí),再由用戶指定文件名。
進(jìn)入Vi時(shí),用戶不僅可以指定一個(gè)待編輯的文件名,而且還有許多附加操作。如果希望在進(jìn)入Vi之后,光標(biāo)處于文件中特定的某行上,可在Vi后加上任選項(xiàng)+n,其中n為指定的行數(shù)。例如 鍵入命令:vi +3 example.txt后,光標(biāo)將位于文件example.txt中的第3行上。

二.vi常用的命令

1.插入(Insert)命令
Vi提供了兩個(gè)插入命令:i 和 I命令
(1)i命令
插入文本從光標(biāo)所在位置前開始,并且插入過程中可以使用鍵刪除錯(cuò)誤的輸入。此時(shí)Vi處于插入狀態(tài),屏幕最下行顯示“--INSERT--”(插入)字樣。
例1,有一正在編輯的文件,如下所示:
Welcome to vi world!Come on!
~
~
光標(biāo)位于***個(gè)“!”上,需在其前面插入:
This is an example!
使用i命令,并輸入相應(yīng)文本后,屏幕顯示如下:
Welcome to vi world This is an example!!Come on!
~
~
由此例可以看到,光標(biāo)本來是在***個(gè)“!”處,但是由于是從光標(biāo)所在位置前開始插入,所以這個(gè)“!”就被擠到了新插入的文本之后。
(2)I命令
該命令是將光標(biāo)移到當(dāng)前行的行首,然后在其前插入文本.

2.光標(biāo)移動(dòng)操作在屏幕上移動(dòng)
全屏幕文本VI編輯器中,光標(biāo)的移動(dòng)操作無疑是最經(jīng)常使用的操作了。用戶只有熟練地使用移動(dòng)光標(biāo)的這些命令,才能迅速準(zhǔn)確地到達(dá)所期望的位置處進(jìn)行編輯。
Vi中的光標(biāo)移動(dòng)既可以在命令模式下,也可以在文本輸入模式下,但操作的方法不盡相同。
(1)在文本輸入模式下,可直接使用鍵盤上的四個(gè)方向鍵移動(dòng)光標(biāo)。
(2)在命令模式下,有很多移動(dòng)光標(biāo)的方法。不但可以使用四個(gè)方向鍵來移動(dòng)光標(biāo),還可以用h、j、k、l這四個(gè)鍵代替四個(gè)方向鍵來移動(dòng)光標(biāo),這樣可以避免由于不同機(jī)器上的不同鍵盤定義所帶來的矛盾,而且使用熟練后可以手不離開字母鍵盤位置就能完成所有操作,從而提高工作效率。

3.在屏幕上移動(dòng)
Vi編輯器提供了三個(gè)關(guān)于光標(biāo)在全屏幕上移動(dòng)并且文件本身不發(fā)生滾動(dòng)的命令。它們分別是H、M和L命令。
(1)H命令
該命令將光標(biāo)移至屏幕首行的行首(即左上角),也就是當(dāng)前屏幕的***行,而不是整個(gè)文件的***行。利用此命令可以快速將光標(biāo)移至屏幕頂部。若在H命令之前加上數(shù)字n,則將光標(biāo)移至第n行的行首。值得一提的是,使用命令dH將會(huì)刪除從光標(biāo)當(dāng)前所在行至所顯示屏幕首行的全部內(nèi)容。
(2)M命令
該命令將光標(biāo)移至屏幕顯示文件的中間行的行首。即如果當(dāng)前屏幕已經(jīng)充滿,則移動(dòng)到整個(gè)屏幕的中間行;如果并未充滿,則移動(dòng)到文本的那些行的中間行。利用此命令可以快速地將光標(biāo)從屏幕的任意位置移至屏幕顯示文件的中間行的行首。例如,在上面屏幕顯示的情況下(不論光標(biāo)在屏幕的何處),在命令模式下,輸入命令M之后,光標(biāo)都將移到add這一行的字母a上。同樣值得一提的是,使用命令dM將會(huì)刪除從光標(biāo)當(dāng)前所在行至屏幕顯示文件的中間行的全部內(nèi)容。
(3)L命令
當(dāng)文件顯示內(nèi)容超過一屏?xí)r,該命令將光標(biāo)移至屏幕上的***行的行首;當(dāng)文件顯示內(nèi)容不足一屏?xí)r,該命令將光標(biāo)移至文件的***一行的行首。可見,利用此命令可以快速準(zhǔn)確地將光標(biāo)移至屏幕底部或文件的***一行。若在L命令之前加上數(shù)字n,則將光標(biāo)移至從屏幕底部算起第n行的行首。同樣值得一提的是,使用命令 dL將會(huì)刪除從光標(biāo)當(dāng)前行至屏幕底行的全部內(nèi)容。

4.編輯命令
讓我們看看最簡單也是最常用的編輯過程:沒有人不犯錯(cuò)誤。所以遲早你會(huì)碰到修改你輸入的文本的時(shí)候。實(shí)際上花在字處理上的大多數(shù)時(shí)間是修改而不是輸入新的東西。因此,你要知道如何方便地修改就很重要。
(1)x--刪除一個(gè)字符
刪除文字的最簡單的方式是用x。這個(gè)命令的結(jié)果是光標(biāo)所處的字符的消失,后面的文字左移動(dòng)。如果你刪除的字符是一行***的一個(gè)字符,那么光標(biāo)將向左移動(dòng)一個(gè),這樣光標(biāo)就不會(huì)停留在不存在的字符的下面了。假如沒有任何文字了,喇叭就叫。
(2)d--刪除對(duì)象
這個(gè)命令的右邊還要有一定的文字對(duì)象。文字對(duì)象就是一塊文字。他右邊接的就是在控制光標(biāo)移動(dòng)的那些字符。例如 w 表示向前一個(gè)單詞,那么 dw 將刪除下一個(gè)單詞。5w 表示前進(jìn)5個(gè)單詞,那么 d5w 將刪除他們。
(3)dd--刪除一行
最常用的 d 系列命令之一。和前面一樣, 5dd 將刪除 5 行
(4)D--整個(gè)刪除
大寫形式的 D 用來刪除從光標(biāo)到行尾。和 d$ 一樣效果。
(5)u--恢復(fù)
要后悔嗎?他不僅僅撤消刪除,還撤消你所有的編輯工作。
(6).--重復(fù)
重復(fù)編輯工作。

5.退出Vi編輯器
當(dāng)編輯完文件,準(zhǔn)備退出Vi返回到shell時(shí),可以使用以下幾種方法之一。
(1)在命令模式中,連按兩次大寫字母Z,若當(dāng)前編輯的文件曾被修改過,則Vi保存該文件后退出,返回到shell;若當(dāng)前編輯的文件沒被修改過,則Vi直接退出, 返回到shell。
(2)在末行模式下,輸入命令 :w Vi保存當(dāng)前編輯文件,但并不退出,而是繼續(xù)等待用戶輸入命令。在使用w命令時(shí),可以再給編輯文件起一個(gè)新的文件名。
例如:w newfile
此時(shí)Vi將把當(dāng)前文件的內(nèi)容保存到指定的newfile中,而原有文件保持不變。若newfile是一個(gè)已存在的文件,則Vi在顯示窗口的狀態(tài)行給出提示信息:
File exists (use ! to override)
此時(shí),若用戶真的希望用文件的當(dāng)前內(nèi)容替換newfile中原有內(nèi)容,可使用命令
:w! newfile
否則可選擇另外的文件名來保存當(dāng)前文件。
(3)在末行模式下,輸入命令 :q 系統(tǒng)退出Vi返回到shell。若在用此命令退出Vi時(shí),編輯文件沒有被保存,則Vi在顯示窗口的最末行顯示如下信息:
No write since last change (use ! to overrides)
提示用戶該文件被修改后沒有保存,然后Vi并不退出,繼續(xù)等待用戶命令。若用戶就是不想保存被修改后的文件而要強(qiáng)行退出Vi時(shí),可使用命令:q! Vi放棄所作修改而直接退到shell下。
(4)在末行模式下,輸入命令 :wq Vi將先保存文件,然后退出Vi返回到shell。
(5)在末行模式下,輸入命令 :x 該命令的功能同命令模式下的ZZ命令功能相同。

到此,相信大家對(duì)“l(fā)inux vi編輯器的使用技巧有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI