版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第3章vi編輯器的使用 3.1vi的工作模式3.2vi的啟動和退出3.3vi長指令和短指令3.4vi高級應(yīng)用
習(xí)題第3章vi編輯器的使用 3.1vi的工作模式3.1vi的工作模式
在使用vi之前,首先應(yīng)該了解一下vi的工作模式。
vi有兩種工作模式:編輯模式和指令模式。在vi中用戶可以在這兩種模式間切換。編輯模式:用來輸入和編輯文件的模式,屏幕上會顯示用戶的鍵入,按鍵不是被解釋為命令執(zhí)行,而是作為文本寫到用戶的文件中。3.1vi的工作模式在使用vi之前,首
指令模式:用來編輯、存盤和退出文件的模式。運行vi后,首先進入指令模式。此時輸入的任何字符都被視為指令對待,鍵入的命令不會在屏幕上顯示。狀態(tài)行:屏幕底部一行,通常是第24行,被vi編輯器用來反饋編輯操作結(jié)果。錯誤消息或者提供信息的消息會在狀態(tài)行中顯示出來。vi還會在24行顯示那些以冒號(:)或者問號(?)開頭的命令。指令模式:用來編輯、存盤和退出文件的模式。
如果從指令模式切換到編輯模式,則可以按【Insert】鍵;如果從編輯模式切換到指令模式,則可以按【Esc】鍵。如果不能斷定目前處于什么模式,則可以多按幾次【Esc】鍵,這時系統(tǒng)會發(fā)出蜂鳴聲,證明已經(jīng)進入指令模式。
【注意】Linux下的命令是大小寫敏感的。如果從指令模式切換到編輯模式,則可以按【3.2vi的啟動和退出1.啟動vi
要進入vi,可以直接在系統(tǒng)提示字符下鍵入vi,按空格,然后再輸入文件名(本例中以test.txt作為文件名),像下面一行:
vitest.txt
圖3-1顯示了用vi新建文件test.txt的初始畫面。3.2vi的啟動和退出1.啟動vi~~~~~~“test.txt”[newfile]0lines0characters圖3-1進入vi的初始化畫面~圖3-1進入vi的初始化畫面vi可以自動幫你載入所要編輯的文件或是開啟一個新文件。如果test.txt文件已存在,vi就會在屏幕上顯示文件的第一頁(前23行)。如果test.txt是一個新文件,vi就會清屏,光標(biāo)會出現(xiàn)在屏幕的左上角,屏幕左方會出現(xiàn)波浪符號“~”,凡是列首有該符號就表示此列目前是空的。vi可以自動幫你載入所要編輯的文件或是開2.退出vi
要離開vi可以在指令模式下鍵入“:q”,“q!”或“:wq”離開(注意冒號)。
(1)?:q如果用戶只是讀文件的內(nèi)容而未對文件進行修改,可以使用“:q”退出vi;如果用戶對文件的內(nèi)容作了修改,則用“:q”退出vi,那么vi在屏幕的底行會提示下面的信息,vi編輯器還保留在屏幕上:
Nowritesincelastchange(:q!overrides).2.退出vi(2)?:q!如果用戶對文件的內(nèi)容作了修改,然后決定要放棄對文件的修改,可以使用“:q!”強行退出vi,在這種情況下文件的內(nèi)容不變。
(3)?:wq在大多數(shù)情況下,用戶在編輯結(jié)束時,用“:wq”命令保存文件,然后退出vi。
(4)?:n,mwfilename該指令將第n~m行的文本保存到指定的文件filename中。
(2)?:q!如果用戶對文件的內(nèi)容作(5)ZZ該指令表示快速保存文件的內(nèi)容,然后退出vi,功能和“:wq”一樣。
(6)?:w!vi編輯器通常防止覆蓋一個已存在的文件。比如用戶鍵入“:wtest.txt”并按回車鍵,而test.txt文件已存在時,vi會顯示如下的信息提出警告:
"test.txt"Fileexist–use":w!tooverwrite"
(5)ZZ該指令表示快速保存文件的3.3vi長指令和短指令vi的指令分為兩種:長指令和短指令。長指令以冒號開頭,鍵入冒號后,在屏幕的最末尾一行會出現(xiàn)冒號提示符,等待用戶鍵入指令,輸入完指令后回車,vi就會執(zhí)行該指令。短指令和快捷鍵相似,鍵入短指令之后,vi不會給任何提示就直接執(zhí)行。接下來我們以分組的形式來介紹vi常用的指令。3.3vi長指令和短指令vi的指令分為(1)輸入輸出命令的作用如表3-1所示。表3-1輸入輸出命令命令作用a在光標(biāo)后輸入文本A在當(dāng)前行末尾輸入文本i在光標(biāo)前輸入文本I在當(dāng)前行開始輸入文本o在當(dāng)前行后輸入新一行O在當(dāng)前行前輸入新一行(1)輸入輸出命令的作用如表3-1所示。表3-1輸入輸(2)光標(biāo)移動命令的作用如表3-2所示。表3-2光標(biāo)移動命令命令作用B移動到當(dāng)前單詞的開始e移動到當(dāng)前單詞的結(jié)尾w向后移動一個單詞h向前移動一個字符j向下移動一行k向上移動一行l(wèi)向后移動一個字符(2)光標(biāo)移動命令的作用如表3-2所示。表3-2光標(biāo)移(3)刪除操作命令的作用如表3-3所示。表3-3刪除操作命令命令作用x刪除光標(biāo)所在的字符dw刪除光標(biāo)所在的單詞d$刪除光標(biāo)至行尾的所有字符D同d$dd刪除當(dāng)前行(3)刪除操作命令的作用如表3-3所示。表3-3刪除操(4)改變與替換命令的作用如表3-4所示。表3-4改變與替換命令命令作用r替換光標(biāo)所在的字符R替換字符序列cw替換一個單詞ce同cwcb替換光標(biāo)所在的前一字符c$替換自光標(biāo)位置至行尾的所有字符C同c$cc替換當(dāng)前行(4)改變與替換命令的作用如表3-4所示。表3-4改變(5)查詢命令的作用如表3-5所示。表3-5查
詢
命
令命令作用/abc向后查詢字串“abc”?abc向前查詢字串“abc”n重復(fù)前一次查詢N重復(fù)前一次查詢,但方向相反(5)查詢命令的作用如表3-5所示。表3-5查詢命(6)拷貝與粘貼命令的作用如表3-6所示。表3-6拷貝與粘貼命令命令作用yw將光標(biāo)所在單詞拷入剪貼板y$將光標(biāo)至行尾的字符拷入剪貼板Y同y$yy將當(dāng)前行拷入剪貼板p將剪貼板中的內(nèi)容粘貼在光標(biāo)后P將剪貼板中的內(nèi)容粘貼在光標(biāo)前(6)拷貝與粘貼命令的作用如表3-6所示。表3-6拷(7)文件保存及退出命令的作用如表3-7所示。表3-7文件保存及退出命令命令作用:q不保存退出:q!不保存強制性退出:w保存編輯:wfilename存入文件filename中:w!filename強制性存入文件filename中:wq保存退出:x同:wqZZ同:wq(7)文件保存及退出命令的作用如表3-7所示。表3-7(8)其他命令的作用如表3-8所示。表3-8其他vi命令命令作用u取消上一次的操作U可以恢復(fù)對光標(biāo)所在行的所有改變J把兩行連接到一起:set用來設(shè)置或瀏覽vi系統(tǒng)當(dāng)前的選項:X對所編輯的文件進行簡單加密(8)其他命令的作用如表3-8所示。表3-8其他vi3.4vi高級應(yīng)用3.4.1設(shè)置vi環(huán)境
vi編輯器的行為可以通過設(shè)置編輯參數(shù)來定義,并且有許多種方法可以進行這種設(shè)置。最直接的方法是使用vi的set命令進行設(shè)置。這種情況下,vi在進行設(shè)置前必須處于指令狀態(tài)。使用這種方法的用戶可以設(shè)置任何選項,但是選項的改變是臨時的,并且只在用戶當(dāng)前編輯會話下有效。當(dāng)用戶退出vi編輯器時,設(shè)置會被丟棄。3.4vi高級應(yīng)用3.4.1設(shè)置vi環(huán)境
本小節(jié)介紹一些有用的vi參數(shù),表3-9對它們進行了匯總(按字母順序列出)。大多數(shù)選項名有縮寫形式,用戶進行設(shè)置時既可以使用選項名的全稱,也可以使用縮寫。本小節(jié)介紹一些有用的vi參數(shù),表3-9對它表3-9vi選
項選項縮寫功能autoindentai將新行與前一行的開始對準(zhǔn)ignorecaseic在搜索選項下,忽略大小寫magic-在搜索時,允許使用特殊字符numbernu顯示行號report-告知用戶最后一個命令作用行的行號scroll-設(shè)定使用[Ctrl-d]命令翻滾的行數(shù)shiftwidthsw設(shè)定縮進空格數(shù),一般與autoindent一同使用showmodesmd在屏幕右角顯示vi編輯器模式terse-縮短錯誤信息wrapmarginwm將右邊界設(shè)定為一定的字符個數(shù)表3-9vi選項選項縮寫功能auto1.?autoindent選項
autoindent選項將用戶鍵入的每個新行與前一行的開始對齊。該選項對于使用C等其他結(jié)構(gòu)化程序設(shè)計語言編寫程序時十分有用。使用【Ctrl-d】可減少一級縮進,每次執(zhí)行【Ctrl-d】,會增加一個由shiftwidth選項指定的數(shù)值。本選項的默認(rèn)值為noai。1.?autoindent選項2.?ignorecase選項
vi編輯器提供大小寫敏感的搜索,也就是說它區(qū)分大寫字母和小寫字母。要使vi忽略大小寫,鍵入“:setignorecase”并按回車鍵。要返回大小寫敏感狀態(tài),鍵入“:setnoignorecase”并按回車鍵。
3.?magic選項某些符號(如方括號[])在用于搜索時有特殊的含義。當(dāng)用戶將這些符號開頭置為nomagic時,這些符號不再有特殊含義。2.?ignorecase選項4.?number選項
vi編輯器一般情況下不顯示每行的行號。顯示行號可以使用戶對自己文件的大小及自己正在編輯文件的哪一部分等心里有數(shù)。要顯示行號,鍵入“:setnumber”,然后按回車鍵。如果不希望顯示行號,鍵入“:setnonumber”并按回車鍵。
4.?number選項5.?report選項
vi編輯器對用戶的編輯工作并不給予任何反饋。例如,如果用戶鍵入“dd”,vi刪除當(dāng)前行文本,但不會在屏幕上顯示任何確認(rèn)消息。如果希望在屏幕上看到自己編輯的反饋信息,用戶可以使用report選項來實現(xiàn)。該參數(shù)被設(shè)為使vi編輯器報告發(fā)生變化的行的最小行數(shù)。5.?report選項
要將report選項設(shè)為2行時有效,鍵入“:setreport=2”并按回車鍵。于是,當(dāng)用戶的編輯工作作用兩行時,vi顯示相應(yīng)報告。例如,刪除兩行并復(fù)制兩行,將在屏幕底部產(chǎn)生類似下面的報告信息:2linesdeleted2linesyanked要將report選項設(shè)為2行時有效,鍵入6.?scroll選項
scroll選項用于設(shè)定用戶在使用【Ctrl-d】時希望滾動的行數(shù)。例如,要想使屏幕滾動5行,鍵入“:setscroll=5”并按回車鍵。
7.?shiftwidth選項該選項設(shè)定在設(shè)置了自動縮進時,使用【Ctrl-d】時的空格數(shù)。該選項的默認(rèn)設(shè)置為“sw=8”。例如,要把該設(shè)置改為10,鍵入“:setsw=10”并按回車鍵。6.?scroll選項8.?showmode選項
vi編輯器并不顯示任何可見的反饋信息來告知當(dāng)前是處于文本輸入模式還是指令模式,這可能導(dǎo)致混淆,尤其是對于新手。用戶可以設(shè)置showmode選項來提供可見的反饋到屏幕,或者說showmode選項在狀態(tài)行上指示你所處的模式。8.?showmode選項
要打開showmode選項,鍵入“:setshowmode”并按回車鍵。接著,根據(jù)用戶需要在文本輸入和指令模式之間切換,而vi在屏幕的右下角顯示不同的信息。如果用戶鍵入“a”或“A”切換到編輯模式,vi顯示APPENDMODE;如果用戶鍵入“i”或“I”,vi將顯示INSERTMODE;如果用戶鍵入“O”或“o”,vi顯示OPENMODE等等。這些信息將一直顯示在屏幕上,直到用戶按【Esc】鍵切換到指令模式。當(dāng)屏幕上沒有信息時,vi處于指令模式。要關(guān)閉showmode選項,鍵入“:setnoshowmode”并按回車鍵。要打開showmode選項,鍵入“:set9.?terse選項該選項使vi編輯器顯示縮短的錯誤消息。該選項默認(rèn)值為noterse。
10.?wrapmargin選項該選項定義右邊距。用戶的終端屏幕通常為80列。當(dāng)鍵入到行的末尾時(超過第80列),屏幕即開始一個新行,這就是所說的行回繞。在用戶按回車鍵時,屏幕同樣開始一個新行。因此,屏幕上一行的長度可以為1~80個字符之間的任何長度。9.?terse選項但是,vi編輯器只在用戶按回車鍵時,才在用戶文件中生成一個新行。如果用戶在按回車鍵前鍵入了120個字符,這時鍵入的文本看起來是在2行,但實際在文件中,這120個字符只在1行中。過長的行在文件打印時可能會出現(xiàn)問題,并且屏幕顯示的行號與實際文件中的行號相對應(yīng)時容易產(chǎn)生混淆。最簡單的限制行長度的方法是在到達(dá)屏幕行末尾前按回車鍵。另一種方法是設(shè)定wrapmargin參數(shù)以使vi編輯器自動插入回車。但是,vi編輯器只在用戶按回車鍵時,才在用戶文件中生成一個新
例如,要將wrapmargin設(shè)為10(10是從屏幕右邊界計數(shù)的字符的個數(shù)),鍵入“wm=10”并按回車鍵。于是當(dāng)用戶鍵入到第70列時,vi編輯器強迫回車,開始一個新行,以便留出右邊距。如果用戶正在鍵入一個字時超過第70列,vi編輯器將把該字整個移至新行。這也意味著右邊界可能會對不齊。wrapmargin選項的默認(rèn)值是0,要關(guān)閉這個選項,鍵入“:setwrapmargin=0”并按回車鍵即可。例如,要將wrapmargin設(shè)為10(3.4.2縮寫與宏
vi編輯器為用戶提供一些捷徑,以使用戶的輸入更快速、更簡單?!?ab”和“:map”是兩個用于該目的的命令。
1.縮寫操作符縮寫操作符“:ab”(縮寫)命令使得用戶給任何字符串指定縮寫,該功能可以幫助用戶提高輸入速度。用戶可以為自己經(jīng)常輸入的文本選擇一個易記的縮寫,在vi編輯器中設(shè)置縮寫后,就可使用該縮寫代替原來的文本。例如,要縮寫本書中常用的文本UnixOperatingSystem,鍵入“:abunoUnixOperatingSystem”并按回車鍵。3.4.2縮寫與宏
在這個例子中,“uno”是賦給UnixOperatingSystem的縮寫,因此,當(dāng)vi處于文本輸入模式時,任何時間用戶鍵入“uno”接著鍵入一個空格時,vi都將uno變?yōu)閁nixOperatingSystem。如果uno是另一個字的一部分,如unofficial,則并不會發(fā)生改變。vi通過uno前后的空格來識別出uno是一個縮寫,并把它擴展。要取消一個縮寫,用戶可以使用“:unab”(未縮寫)操作符。例如,要取消uno縮寫,鍵入“:unabuno”并按回車鍵即可。在這個例子中,“uno”是賦給UnixO【實例3.1】(1)鍵入“:ablclinuxcourse”并按回車鍵,將lc指定為linuxcourse的縮寫。(2)鍵入“:ab123one,two,three,etc.”并按回車鍵,將123指定為one,two,three,etc.的縮寫。(3)鍵入“:ab”并按回車鍵,顯示所有指定的縮寫:
lc linuxcourse123 one,two,three,etc.(4)鍵入“:unab123”并按回車鍵,取消123縮寫。【實例3.1】2.宏操作符宏操作符(map)使用戶能將一系列鍵指定給某一鍵。如同縮寫操作符給用戶一個文本輸入模式下的捷徑一樣,map給用戶一個在指令模式下的捷徑。例如,將指令dd指定為q,鍵入“:mapqdd”并按回車鍵。此后,當(dāng)vi處于指令模式時,每當(dāng)用戶鍵入q時,vi應(yīng)刪除光標(biāo)所在的行。要取消一個map指定,用戶可以使用“:unmap”操作符。鍵入“:unmapq”并按回車鍵。2.宏操作符
要查看map鍵的列表和它們指定的內(nèi)容,鍵入“:map”并按回車鍵。用戶也可以使用map指令為自己的終端指定功能鍵。在這種情況下,用戶鍵入“#n”作為鍵名,n代表功能鍵號。例如,要指定dd到【F2】,鍵入“:map#2dd”并按回車鍵即可。此后,如果用戶在vi的指令模式下按【F2】鍵,vi應(yīng)刪除光標(biāo)所在的行。要查看map鍵的列表和它們指定的內(nèi)容,鍵入“【實例3.2】
下面例子顯示部分指定鍵。
(1)鍵入“:mapV/linux”并按回車鍵,將V鍵指定為搜索linux的搜索指令。
(2)鍵入“:map#3yy”并按回車鍵,將【F3】指定為拷貝一行。
(3)鍵入“:map”并按回車鍵,顯示已經(jīng)指定的鍵:V /linux#3 yy【實例3.2】【實例3.3】
假設(shè)用戶希望在文件中查找“l(fā)inux”,并將它替換為“LINUX”。進行下面的操作:
(1)鍵入“:/linux”并按回車鍵,查找單詞“l(fā)inux”。
(2)鍵入“cwLINUX”,然后按【Esc】鍵,將“l(fā)inux”改為“LINUX”并返回vi指令模式。【實例3.3】
在映射鍵指定中,命令行中按【Ctrl-v】【Return】來代表回車,用【Ctrl-v】【Esc】來代表【Esc】鍵。這樣,要映射前面的命令到一個鍵中,比如說V鍵,鍵入“:mapv/linux”,接著按【Ctrl-v】【Return】,然后鍵入“cwLINUX”,再按【Ctrl-v】【Esc】。該命令行中使用了不可打印字符【Ctrl-v】和【Esc】,所以用戶看到的屏幕如下所示:
:mapv/linux^McwLINUX^[在映射鍵指定中,命令行中按【Ctrl-v3.4.3“.exrc”文件用戶在vi編輯器中所設(shè)置的所有選項都是臨時的,當(dāng)用戶退出vi時,它們都會失效。要使這些設(shè)置成為永久的,而不需在每次使用vi時重新設(shè)置,可以將選項的設(shè)置保存到文件“.exrc”中。3.4.3“.exrc”文件【注意】以“.”(點)開頭的文件被稱為隱藏文件。當(dāng)用戶打開vi編輯器時,它自動查看用戶當(dāng)前工作目錄中的“.exrc”文件,并根據(jù)在文件中找到的內(nèi)容設(shè)置編輯環(huán)境。如果vi沒有在當(dāng)前目錄中發(fā)現(xiàn)“.exrc”文件,它將查找用戶的主目錄,并根據(jù)在那里發(fā)現(xiàn)的“.exrc”文件設(shè)置編輯環(huán)境。如果vi一個“.exrc”文件也沒有找到,則它對選項使用默認(rèn)值?!咀⒁狻恳浴?”(點)開頭的文件被稱為隱藏vi檢查“.exrc”文件存在的方式給用戶提供了強大的工具,用戶可以根據(jù)自己的不同的編輯需要定義“.exrc”文件。例如,可以創(chuàng)建一個通用的“.exrc”文件存在主目錄。用戶可以用vi創(chuàng)建一個“.exrc”文件,或修改現(xiàn)有的“.exrc”文件。vi檢查“.exrc”文件存在的方【實例3.4】
創(chuàng)建一個“.exrc”文件,鍵入“vi.exrc”并按回車鍵,然后輸入用戶想要的set和其他命令。下面是一個具體的例子:
setreport=0setshowmodesetnumbersetic【實例3.4】setwm=10setscroll=5abuopUNIXOperatingSystemmapqddsetwm=103.4.4運行Shell命令用戶可以在vi的命令行運行LinuxShell命令。這一方面的特性使用戶可以臨時拋棄vi來運行Shell命令。“!”通知vi后面是一個Shell命令。例如,要在vi編輯器中運行date命令,鍵入“:!date”后按回車鍵。vi編輯器將清除屏幕,執(zhí)行date命令,我們可以看到類似如下的屏幕顯示:
SatFeb814:00:52EDT2003[Hitanykeytocontinue]3.4.4運行Shell命令
按任意一個鍵即可返回vi編輯器,并可在前面離開的地方繼續(xù)編輯。如果用戶希望,也可以將Shell命令執(zhí)行的結(jié)果讀進來并加到用戶文本中。使用“:r”(讀
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二手車按揭交易合同范本3篇
- 2025深圳市動產(chǎn)拍賣行委托拍賣合同范本
- 2024年體育場館運營管理暫定價合同范本3篇
- 2025版醫(yī)療器械貨物運輸合同匯編與質(zhì)量監(jiān)控
- 2025版智能建筑鋼管租賃與信息化管理服務(wù)協(xié)議書3篇
- 2025年編輯加工軟件項目發(fā)展計劃
- 2025版果園果樹品種改良與技術(shù)支持合同范本3篇
- 2024年食品安全責(zé)任合同3篇
- 2025版中草藥出口業(yè)務(wù)代理合同
- 2024年物業(yè)小區(qū)安全保衛(wèi)服務(wù)合同3篇
- 北師大版九年級數(shù)學(xué)下冊《圓的對稱性》評課稿
- 住宅室內(nèi)裝飾裝修管理辦法課件
- 呼吸系統(tǒng)疾病診療規(guī)范
- 《遙感原理與應(yīng)用》期末考試試卷附答案
- 2023年全國乙卷筆試部分講解課件 【高效課堂+精研精講】 高考英語復(fù)習(xí)
- 工程分包管理制度
- GB/T 9452-2023熱處理爐有效加熱區(qū)測定方法
- 肺炎支原體肺炎診治專家共識
- 酒店業(yè)輕資產(chǎn)運營模式案例研究
- 建筑師《建筑工程經(jīng)濟》習(xí)題(E)
- 《卓有成效的管理者》讀書分享
評論
0/150
提交評論