




已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
童夢(mèng)無(wú)憂(yōu)網(wǎng) 試管嬰兒論壇 本文由星空下的松海貢獻(xiàn) ppt文檔可能在WAP端瀏覽體驗(yàn)不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機(jī)查看。 第3章 vi文本編輯器 第3章 vi文本編輯器 3.1 vi文本編輯器概述 3.2 vi基本命令 3.3 vi常用末行命令 習(xí)題 第3章 vi文本編輯器 3.1 vi文本編輯器概述 文本編輯器概述 與Unix相同,Linux本質(zhì)上是一個(gè)文本驅(qū)動(dòng)(text-driven) 的操作系統(tǒng)。文本文件就是全部由ASCII碼字符及某種語(yǔ)言 的編碼字符構(gòu)成的文件,不含有任何樣式和格式信息。文本 文件可以被任何文本編輯器解釋而不會(huì)出現(xiàn)亂碼,還可以被 所有程序操作和使用。在Linux系統(tǒng)中,文本文件被廣泛地 用作系統(tǒng)配置文件和系統(tǒng)工具軟件的操作對(duì)象。這使得用戶(hù) 可以在文本方式下完成所有的工作,如編寫(xiě)程序和命令腳本、 讀/寫(xiě)電子郵件、配置和管理系統(tǒng)等。而完成所有這些工作 的基本工具就是文本編輯器。因此,Linux的用戶(hù)應(yīng)當(dāng)熟悉 至少一種文本編輯器。 第3章 vi文本編輯器 3.1.1 vi文本編輯器介紹 文本編輯器介紹 Linux下的文本編輯器有ex、sed、vi和emacs等很多種。 其中,vi是最基本的文本編輯工具。vi(visual)誕生于1978年, 由柏克萊大學(xué)的Bill Joy編寫(xiě)。從其誕生至今,vi始終是所有 Unix/Linux系統(tǒng)上必配的編輯器,甚至在DOS、Windows、 Macintosh、OS/2乃至IBM大型機(jī)S/390系統(tǒng)上都能見(jiàn)到vi的 某個(gè)版本。目前Linux系統(tǒng)上流行的版本是vi增強(qiáng)版vim(vi improved)。vim是一個(gè)開(kāi)放源代碼軟件,它在vi的基礎(chǔ)上增 強(qiáng)了功能,也更容易使用。現(xiàn)在許多Linux發(fā)行版中的vi就 是vim。本書(shū)中所說(shuō)的vi也兼指vim,但有一些選項(xiàng)可能只有 vim支持。 第3章 vi文本編輯器 vi是一個(gè)全屏幕文本編輯器,具有文本編輯所需的所有 功能。vi以高效和快捷著稱(chēng),這是vi能夠在編輯器領(lǐng)域中保 持幾十年領(lǐng)先地位的原因。以下介紹vi的幾個(gè)突出特點(diǎn)。 第3章 vi文本編輯器 1. 編輯功能強(qiáng)大 vi的編輯功能十分強(qiáng)大,除通常的編輯功能外,vi還支 持一些高級(jí)編輯特性,如正則表達(dá)式、宏和命令腳本。利用 這些特性可以完成非常復(fù)雜的編輯任務(wù),實(shí)現(xiàn)編輯的智能化 和自動(dòng)化。另一方面,vi的功能又十分專(zhuān)注,它只是一個(gè)編 輯器,沒(méi)有其他功能。Linux系統(tǒng)提供了許多專(zhuān)門(mén)用途的工 具,如排版、排序、流過(guò)濾、E-mail、編譯等軟件。vi可以 和這些工具軟件協(xié)同工作,從而實(shí)現(xiàn)幾乎所有的文件加工處 理任務(wù)。用一些小而精悍、功能專(zhuān)一的工具結(jié)合起來(lái)完成復(fù) 雜的處理功能,這正是Unix的設(shè)計(jì)哲學(xué)。 第3章 vi文本編輯器 2. 適用于各種版本的 適用于各種版本的Unix/Linux系統(tǒng) 系統(tǒng) vi是Unix/Linux系統(tǒng)的標(biāo)準(zhǔn)文本編輯器,幾乎每一臺(tái) Unix/Linux系統(tǒng)上都會(huì)有vi,這是其他編輯器無(wú)法相比的。 3. 適用于各種類(lèi)型的終端 vi得以廣泛應(yīng)用的原因之一是它對(duì)終端設(shè)備的廣泛適應(yīng) 性。不管是只有打字機(jī)鍵盤(pán)加Esc鍵的簡(jiǎn)單終端,還是受通 信限制的遠(yuǎn)程終端,或是配有完備的功能鍵和鼠標(biāo)的現(xiàn)代化 終端,都可以很好地支持vi完成文本編輯工作。 第3章 vi文本編輯器 4. 使用靈活快捷 廣泛適應(yīng)性帶來(lái)的問(wèn)題是繁多的命令。對(duì)于同一項(xiàng)編輯 操作,vi提供了許多不同的命令。vi的命令都很簡(jiǎn)練,往往 是單個(gè)字符或少數(shù)幾個(gè)字符的組合。對(duì)初學(xué)者來(lái)說(shuō),使用這 些命令并不方便,甚至過(guò)于復(fù)雜。但對(duì)于熟練的用戶(hù)來(lái)說(shuō), 更多的選擇意味著更大的自由,簡(jiǎn)單的命令意味著更少的擊 鍵次數(shù)。正因?yàn)槿绱?,vi被看做是Linux開(kāi)發(fā)人員和系統(tǒng)管 理員的編輯利器。初學(xué)者經(jīng)過(guò)一段時(shí)間的使用,也會(huì)逐漸習(xí) 慣vi的操作方式,并形成自己特有的操作風(fēng)格。 第3章 vi文本編輯器 3.1.2 vi的工作模式 的工作模式 vi是一個(gè)多模式的軟件,它有三種工作模式。在不同的 工作模式下,它對(duì)輸入的內(nèi)容有不同的解釋。 1. 命令模式 命令模式(Command mode) 在命令模式下,輸入的任何字符都作為命令來(lái)解釋執(zhí)行, 屏幕上不顯示輸入內(nèi)容。命令模式用于完成各種文本修改工 作。 2. 輸入模式 輸入模式(Insert mode) 在輸入模式下,輸入的任何字符都將作為文件的內(nèi)容被 保存,并顯示在屏幕上。輸入模式用于完成文本錄入工作。 第3章 vi文本編輯器 3. 末行模式 末行模式(Last line mode) 末行模式也稱(chēng)為ex轉(zhuǎn)義模式。在末行模式下,光標(biāo)停留 在屏幕的最末行,在此接收輸入的命令并執(zhí)行。末行模式用 于執(zhí)行一些全局性操作,如文件操作、參數(shù)設(shè)置、查找與替 換、拷貝與粘貼、執(zhí)行Shell命令等。 在文本編輯過(guò)程中,用戶(hù)可以控制vi在這三種工作模式 之間進(jìn)行切換,完成各種編輯工作。三種模式之間的轉(zhuǎn)換關(guān) 系如圖3-1所示。 第3章 vi文本編輯器 圖3-1 vi工作模式的轉(zhuǎn)換 第3章 vi文本編輯器 3.1.3 vi的啟動(dòng)與退出 的啟動(dòng)與退出 在Shell下輸入vi命令后,便進(jìn)入全屏幕編輯環(huán)境,命令 格式是:vi 文件名 vi的啟動(dòng)過(guò)程是:先建立一個(gè)編輯緩沖區(qū),若指定了文 件且該文件已存在,則將其內(nèi)容讀到編輯緩沖區(qū)中;若指定 的文件不存在,則建立此文件。然后將光標(biāo)定位在第1行第1 列的位置上。圖3-2是vi啟動(dòng)后的初始界面。屏幕末行顯示 的是文件的名稱(chēng)、狀態(tài)、行數(shù)和字符數(shù)、光標(biāo)位置(行號(hào), 列號(hào))等信息。光標(biāo)位置的字符通常用反顯方式或下劃線方 式顯示。“”表示編輯區(qū)的空行,它們不是文件的組成部 分。 第3章 vi文本編輯器 圖3-2 vi的初啟界面 第3章 vi文本編輯器 vi啟動(dòng)后首先進(jìn)入命令模式。此時(shí),用戶(hù)可以使用vi的 編輯命令進(jìn)行文本的輸入和修改。具體的用法在第3.2節(jié)介 紹。注意:編輯命令只是修改調(diào)入編輯緩沖區(qū)中的文件的副 本,文件本身不會(huì)被修改。所以,編輯完成后,要用:wq命 令將修改后的內(nèi)容保存到文件中并退出vi。若此次運(yùn)行未對(duì) 原文件作任何修改,則可用:q命令退出。圖3-3示意了退出 命令的用法,更多的文件操作和退出命令在第3.3節(jié)介紹。 第3章 vi文本編輯器 圖3-3 vi的退出 第3章 vi文本編輯器 3.2 vi基?本?命?令 基 vi的命令繁多,但通常的編輯工作只需要掌握其中一小 部分命令。而對(duì)于一些特殊的操作或編輯任務(wù),總能夠在vi 手冊(cè)中找到適當(dāng)?shù)拿睢?vi的常用編輯命令分為以下幾類(lèi): 屏幕翻滾命令; 移動(dòng)光標(biāo)命令; 插入與刪除命令; 修改與替換命令; 拷貝與粘貼命令; 復(fù)原與重復(fù)命令。 第3章 vi文本編輯器 vi的命令通常是簡(jiǎn)單的字符(如a、s、c)或是字符組合 (如dw、cc),還有少數(shù)幾個(gè)控制鍵組合字符(如Ctrl+u)。這 就是說(shuō),僅僅通過(guò)普通鍵盤(pán)就可以實(shí)現(xiàn)所有編輯工作,完全 不需要用鼠標(biāo),也不倚賴(lài)于某些控制鍵。比起使用鼠標(biāo)和復(fù) 雜控制組合鍵來(lái)說(shuō),鍵入字符命令的速度要快得多。因此, 熟練使用這些字符命令能夠提高編輯的效率。 盡管只用字符命令就可以完成所有編輯工作,vi還是提 供了對(duì)現(xiàn)代鍵盤(pán)上的編輯鍵的支持。適當(dāng)?shù)厥褂眠@些熟悉的 按鍵將使編輯操作更加輕松。表3-1列出了這些鍵在不同模 式下的作用。 第3章 vi文本編輯器 表 3-1 vi 按鍵功能說(shuō)明 按 Home End PageDown PageUp Delete Insert Backspace Space Enter 鍵 命令模式 移動(dòng)光標(biāo)到行的最前面 移動(dòng)光標(biāo)到行的最后面 向下翻一頁(yè) 向上翻一頁(yè) 刪除光標(biāo)位置的字符 進(jìn)入輸入模式 光標(biāo)前移一個(gè)字符 光標(biāo)后移一個(gè)字符 光標(biāo)下移一個(gè)字符 按箭頭方向移動(dòng)光標(biāo) 輸入模式 移動(dòng)光標(biāo)到行的最前面 移動(dòng)光標(biāo)到行的最前面 移動(dòng)光標(biāo)到行的最前面 移動(dòng)光標(biāo)到行的最前面 移動(dòng)光標(biāo)到行的最前面 替換-插入 刪除光標(biāo)前的字符 空格 換行 按箭頭方向移動(dòng)光標(biāo) 末行模式 移動(dòng)光標(biāo)到行的最前面 移動(dòng)光標(biāo)到行的最前面 向下翻找歷史命令 向下翻找歷史命令 同左,行尾時(shí)同 Backspace 無(wú)效 刪除光標(biāo)前的字符 空格 提交命令 前后移動(dòng)光標(biāo), 上下翻 找歷史命令 第3章 vi文本編輯器 以下分類(lèi)介紹常用的vi命令。注意:在命令模式下輸入 的字符都被vi解釋為命令,不在屏幕上顯示。若輸入的是非 法命令則響鈴報(bào)警。此外,vi的命令是區(qū)別大小寫(xiě)的,即大 寫(xiě)字母和小寫(xiě)字母代表的是不同的命令。 第3章 vi文本編輯器 3.2.1 屏幕翻滾 當(dāng)編輯的文件比較大時(shí),使用翻屏命令可以快速地將要編輯的區(qū)域 調(diào)入屏幕顯示區(qū)。用PageDown和PageUp鍵可以方便地實(shí)現(xiàn)上下翻屏, 但在有些場(chǎng)合下需要用命令來(lái)實(shí)現(xiàn)更靈活的翻屏操作。常用的幾個(gè)翻屏 命令介紹如下。 翻屏命令: Ctrl+u: Ctrl+d: Ctrl+f: Ctrl+b: 向上翻半屏。 向下翻半屏。 向下翻一屏。同PageDown鍵。 向上翻一屏。同PageUp鍵。 nz+Enter:將第n行滾至屏幕頂部,不指定n時(shí)將當(dāng)前行滾至屏幕 頂部。 第3章 vi文本編輯器 3.2.2 光標(biāo)定位與移動(dòng) 在輸入或修改文本前,應(yīng)先將光標(biāo)移到適當(dāng)?shù)奈恢?。vi 不支持用鼠標(biāo)移動(dòng)光標(biāo)的方式,但以下命令可以更加高效地 定位和移動(dòng)光標(biāo)。 光標(biāo)定位命令: 0 $ nG n| H、M、L 光標(biāo)移至行首。同Home鍵。 光標(biāo)移至行首第1個(gè)非空格字符。 光標(biāo)移至行尾。同End鍵。 光標(biāo)移到第n行,未指定n時(shí)移到末行。 光標(biāo)移到第n列,未指定n時(shí)移到首列。 光標(biāo)移到屏幕首、中、尾行行首。 第3章 vi文本編輯器 光標(biāo)移動(dòng)命令: h、j、k、l 光標(biāo)向左、下、上、右移一個(gè)字符。同 箭頭鍵。 b、w e (、) 、 光標(biāo)移到上一個(gè)詞、下一個(gè)詞首。 光標(biāo)移到詞尾。 光標(biāo)移到句首、句尾。 光標(biāo)移到段首、段尾。 注:以上光標(biāo)移動(dòng)命令前帶數(shù)字n時(shí),表示重復(fù)移動(dòng)n次。 如:2h為左移2格,3e為移到后面第3個(gè)詞的詞尾。 第3章 vi文本編輯器 3.2.3 文本輸入與刪除 1. 文本的輸入 在輸入文本內(nèi)容之前,應(yīng)先將光標(biāo)定位在要輸入的位置 上,然后執(zhí)行插入命令,進(jìn)入輸入模式。處于輸入模式時(shí), 屏幕底部會(huì)顯示“插入”提示,表示后續(xù)的輸入都作為 文件的輸入內(nèi)容。輸入完成后按Esc鍵就可返回命令模式。 插入(insert)命令都是單字符命令,可以靈活地實(shí)現(xiàn)在當(dāng) 前光標(biāo)位置的前、后、行首、行尾、上一行、下一行開(kāi)始輸 入。 第3章 vi文本編輯器 插入命令: a、A i、I 在光標(biāo)位置后、行尾后開(kāi)始插入。 在光標(biāo)位置前、行首前開(kāi)始插入。i的 作用與Insert鍵相同。 o、O 新行開(kāi)始插入。 圖3-4所示為插入命令的用法。 在光標(biāo)所在行之后、光標(biāo)所在行之前的 第3章 vi文本編輯器 圖3-4 插入命令用法示意 第3章 vi文本編輯器 2. 文本的刪除 刪除(delete)文本的最簡(jiǎn)單方法是將光標(biāo)移到要?jiǎng)h除的 字符上,然后,每按一下x鍵或Delete鍵就會(huì)刪掉一個(gè)字符。 若要?jiǎng)h除的文本較多時(shí),可以使用下面更加靈活的刪除命令。 刪除命令: x、X 與Delete鍵相同。 dd D J 刪除光標(biāo)所在的行。 刪除光標(biāo)右面的文本。 刪除當(dāng)前行尾的換行符,使當(dāng)前行與下 一行合并為一行。 刪除光標(biāo)處、光標(biāo)前的字符。x的作用 第3章 vi文本編輯器 d+定位符 d0、d d$ dG db de dw 刪除從光標(biāo)位置到指定位置范圍內(nèi)的字符。常用的有: 刪除光標(biāo)左面的文本。0或代表行首。 刪除光標(biāo)右面的文本。$代表行尾。 刪除光標(biāo)所在行之后的所有行。G代表最后一行。 刪除光標(biāo)處前的字符直到詞首。b代表詞首。 刪除光標(biāo)處的字符直到詞尾。e代表詞尾。 e 刪除光標(biāo)處的字符直到下一個(gè)詞的詞首。w代表下一 詞詞首。 注:以上命令前帶數(shù)字n時(shí),表示刪除的范圍擴(kuò)大n倍。如:3dd為 刪除3行,2de為刪除從光標(biāo)開(kāi)始的2個(gè)詞。 圖3-5所示為刪除命令的用法。 第3章 vi文本編輯器 圖3-5 刪除命令用法示意 第3章 vi文本編輯器 3.2.4 文本修改與替換 1. 文本的修改 文本修改(correct)是指改寫(xiě)一部分文本的內(nèi)容,修改的過(guò)程是:先 刪除指定范圍內(nèi)的文本,然后插入新文本,最后用Esc鍵結(jié)束插入。以 下介紹幾個(gè)常用的修改命令。 修改命令: cc C c0、c c$ cG 修改光標(biāo)所在的行。 修改光標(biāo)處到行尾的文本。 修改光標(biāo)左面的文本。 修改光標(biāo)右面的文本。 修改光標(biāo)所在行之后的所有行。 c +定位符 修改光標(biāo)到指定范圍內(nèi)的文本。常用的有: 第3章 vi文本編輯器 cb cw cl 修改光標(biāo)處前的字符直到詞首。 修改光標(biāo)處的字符直到詞尾。 修改光標(biāo)處的字符。 注:以上命令前帶數(shù)字n時(shí),表示修改的范圍擴(kuò)大n倍。 如:5cc為修改從光標(biāo)所在行開(kāi)始的5行,3cw為修改從光標(biāo) 開(kāi)始的3個(gè)詞。 例3.1 修改命令的用法: 原文本行: 執(zhí)行命令cwbear: Whos afraid of the big wolf?Whos afraid of the big bear? 第3章 vi文本編輯器 移動(dòng)光標(biāo): 執(zhí)行命令Clitter lamb?: 移動(dòng)光標(biāo): 執(zhí)行命令cI dont: 執(zhí)行命令$: 執(zhí)行命令cl.: Whos afraid of the big bear? Whos afraid of the litter lamb? Whos afraid of the litter lamb? I dont afraid of the litter lamb? I dont afraid of the litter lamb? I dont afraid of the litter lamb. 執(zhí)行命令ccI like the lamb.: I like the lamb. 第3章 vi文本編輯器 2. 文本的替換與替代 替換(replace)是指用一個(gè)字符替換另一個(gè)字符,這是一種覆蓋操作, 替換后文本的長(zhǎng)度保持不變。替代(substitute)則是指用多個(gè)字符取代一 個(gè)字符或一行,是一個(gè)先刪除后插入的操作。通常情況下,替代后的文 本長(zhǎng)度會(huì)發(fā)生變化。以下介紹常用的替換與替代命令。 替換與替代命令; r 用輸入的字符替換光標(biāo)處的字符。 R 用輸入的文本逐個(gè)替換從光標(biāo)處開(kāi)始的各個(gè)字符,直到按下Esc 鍵。 s 用輸入的文本替代光標(biāo)處的字符,用Esc鍵結(jié)束輸入,等同于cl。 S 用輸入的文本替代光標(biāo)所在的行,用Esc鍵結(jié)束輸入,等同于cc。 第3章 vi文本編輯器 注:以上命令前帶數(shù)字n時(shí),表示替換或替代的范圍擴(kuò)大n倍。如: 4r為用輸入的字符替換從光標(biāo)處開(kāi)始的4個(gè)字符,2s為用輸入的文本替代 從光標(biāo)處的開(kāi)始的2個(gè)字符。3S為用輸入的文本替代從光標(biāo)所在的行開(kāi) 始的3行。 例3.2 替換與替代命令的用法: 設(shè)原文本行的內(nèi)容是: 執(zhí)行命令ri: 執(zhí)行命令Rat: Rat 執(zhí)行命令2w: 執(zhí)行命令snot a: 執(zhí)行命令2l: Thos is a test. This is a test. That is a test. That is a test. That is not a test. That is not a test. 執(zhí)行命令4sexample: That is not an example. 執(zhí)行命令SThose are tests.:Those are tests. 第3章 vi文本編輯器 3.2.5 文本拷貝與粘貼 拷貝(copy)操作是將光標(biāo)處的文本復(fù)制到一個(gè)緩沖區(qū)中(類(lèi)似于 Windows中的剪貼板);粘貼(paste)操作是將緩沖區(qū)中的內(nèi)容插入到光標(biāo) 處。以下介紹常用的拷貝粘貼命令。 拷貝與粘貼命令: yy y+定位符 y0、c y$ yG yb yw 拷貝光標(biāo)所在行至緩沖區(qū)。 拷貝光標(biāo)到指定范圍內(nèi)的文本。常用的有: 拷貝光標(biāo)左面的文本。 拷貝光標(biāo)右面的文本。 拷貝光標(biāo)所在行之后的所有行。 拷貝光標(biāo)處的字符直到詞首。 拷貝光標(biāo)處的字符直到詞尾。 第3章 vi文本編輯器 p、P 、 若緩沖區(qū)中的內(nèi)容是完整的行,則將這些行插 入到光標(biāo)所在行之后、之前;若不是完整的 行,則將這些文本插入到光標(biāo)處之后、之前。 注:以上命令前帶數(shù)字n時(shí),表示拷貝和粘貼的范圍擴(kuò) 大n倍。如:2yy為拷貝從光標(biāo)所在行開(kāi)始的2行,3yw為拷 貝從光標(biāo)開(kāi)始的3個(gè)詞。 圖3-6所示為拷貝與粘貼命令的用法。 第3章 vi文本編輯器 圖3-6 拷貝與粘貼命令用法示意 第3章 vi文本編輯器 此外,vim還支持鼠標(biāo)粘貼與復(fù)制。在輸入模式下,將 光標(biāo)移到要粘貼的位置,用鼠標(biāo)選中要復(fù)制的文本,再按鼠 標(biāo)中鍵即可。 第3章 vi文本編輯器 3.2.6 撤銷(xiāo)與重做 撤銷(xiāo)(undo)即消除上一個(gè)命令所做的修改,恢復(fù)到命令 執(zhí)行前的樣子。重做(redo)就是重復(fù)執(zhí)行上一個(gè)命令。 撤銷(xiāo)與重做命令: u U 撤銷(xiāo)上一個(gè)命令所做的修改。 撤銷(xiāo)最近針對(duì)一行所做的全部修改。在對(duì)一行 連續(xù)做了多處修改后,用此命令可以一次恢復(fù)全行。 . 重復(fù)前一個(gè)命令。 利用撤銷(xiāo)和重做命令可以提高編輯的效率,減少擊鍵次 數(shù),如圖3-7所示。 第3章 vi文本編輯器 圖3-7 撤銷(xiāo)與重做命令用法示意 第3章 vi文本編輯器 3.3 vi常用末行命令 常用末行命令 在命令模式下,輸入“:”、“/”或“?”字符(稱(chēng)為ex轉(zhuǎn) 義字符)都將進(jìn)入末行模式,隨后的輸入被解釋為行命令, 在屏幕末行顯示。輸入完成后按Enter鍵執(zhí)行。末行命令執(zhí) 行結(jié)束后返回命令模式,或退出vi。 末行命令主要有以下幾類(lèi): 字符串搜索與替換命令; 文件操作與退出命令; 其他命令。 第3章 vi文本編輯器 3.3.1 搜索與替換命令 1. 字符串搜索 要在一個(gè)大文件中查找某個(gè)字符串,可以用字符串搜索命令。執(zhí)行 搜索命令后,光標(biāo)將停留在第一個(gè)匹配字符串的首字符處。按“n”或 “N”則移到下一個(gè)匹配字符串之首。如果不存在匹配的字符串,則會(huì)在 末行上顯示“找不到模式”。搜索命令有以下兩種: /模式 ?模式 從光標(biāo)處向后搜索與指定模式匹配的字符串。按n向后 繼續(xù)找。 從光標(biāo)處向前搜索與指定模式匹配的字符串。按N向前 繼續(xù)找。 例如:執(zhí)行/and命令,光標(biāo)將從當(dāng)前位置移到后面第一個(gè)“and”的 字符“a”上。按n移到下一個(gè)“and”上。當(dāng)搜索到文件尾時(shí),再按n則返 回到文件頭繼續(xù)搜索。 第3章 vi文本編輯器 2. 字符串替換 字符串替換使用s命令,它的功能是在指定的行中搜索 與指定模式相匹配的字符串,并用另一個(gè)字符串替換它。 s命令的一般格式是::n1,n2s/p1/p2/gc 其中n1, n2表示目標(biāo)行的行號(hào)范圍,可以用“%”代表所 有行;未指定范圍時(shí),目標(biāo)行就是光標(biāo)所在的當(dāng)前行。p1是 用做搜索的字符串模式,p2是用做替換的字符串模式。模式 中可以用“”代表行首,“$”代表行尾。s命令可以帶g和c 選項(xiàng)。g表示替換目標(biāo)行中所有匹配的字符串,沒(méi)有g(shù)的話則 只替換目標(biāo)行中第一個(gè)匹配的字符串。選項(xiàng)c表示替換前要 求用戶(hù)確認(rèn)。 第3章 vi文本編輯器 例3.3 s命令的用法: :s/the/The/ :s/is/are/g :s/is a/has a/gc 將當(dāng)前行中第1個(gè)the改為T(mén)he。 將當(dāng)前行中所有is改為are。 將當(dāng)前行中所有is a改為has a。替換 前提示用戶(hù)確認(rèn)。 :1,6s/IF/if /g :%s/ /g 將第1至6行中的所有IF用if替代。 在所有行的行首處加4個(gè)空格。 第3章 vi文本編輯器 3. 全局命令 全局命令g(global)的功能是在全文中搜索含有與指定模式相匹配的 字符串的行,對(duì)匹配的行做標(biāo)記。g命令的格式是: :g/p1 :g!/p1 搜索所有包含p1字符串模式的行。 搜索所有不包含p1字符串模式的行。 例如::g/and命令將找出所有含有“and”的行;:g!/and/命令找出所 有不含“and”的行。 vi的許多末行命令都是針對(duì)行的編輯命令(見(jiàn)3.3.3小節(jié))。g命令可以 與這些面向行的命令聯(lián)合使用,它的作用是修飾這些命令,為其確定滿(mǎn) 足某個(gè)條件的目標(biāo)行。在g命令的修飾下,這些行編輯命令就可用來(lái)完 成面向全文的、按模式篩選的編輯操作。g命令與其他命令聯(lián)合使用的 格式是: 第3章 vi文本編輯器 :g/p1/命令 :g!/p1/命令 對(duì)所有包含p1的行執(zhí)行指定的命令。 對(duì)所有不包含p1的行執(zhí)行指定的命令。 例如:p命令的功能是顯示行,:g/and/p命令將顯示所有 含有“and”的行;d命令的功能是刪除行,:g!/Note/d命令將 刪除所有不含“Note”的行。 第3章 vi文本編輯器 4. 全局替換 s命令是面向行的字符串替換命令。s命令經(jīng)常與g命令 聯(lián)合使用,實(shí)現(xiàn)更靈活更細(xì)致的全局替換功能。 全局替換命令的一般格式是:g命令/s命令。其含義是: 先用g命令在文件中搜索含有某個(gè)模式的行,并做標(biāo)記,然 后用s命令對(duì)所有有標(biāo)記的行執(zhí)行搜索和替換。 常用的全局替換命令的格式有: :g/p1/s/p2/p3/g :g!/p1/s/p2/p3/g 將文件中所有含有p1的行中的p2用p3 替換。 將文件中所有不含有p1的行中的p2用 p3替換。 第3章 vi文本編輯器 :g/p1/s/p2/g 將文件中所有的p1用p2替換。這里:g/p1/s/p2/g 是:g/p1/s/p1/p2/g的簡(jiǎn)寫(xiě),即當(dāng)s命令的搜索模式與g 命令的搜索模式相同時(shí),可以省略s中的搜索模式。 注意:此處/之間沒(méi)有空格。 例3.4 全局替換命令的用法: :g/the/s/The/ :g/is/s/are/g :g/Mary/s/1988/g 將文中所有行的第1個(gè)the改為T(mén)he。 將文中所有is改為are。 將所有含有Mary的行中的所有1988去掉。 :g/printf/s/val/sum/gc 將所有含有printf的行中的所有val改為sum。替 換前先確認(rèn)。 :g!/*/s/IF/if /g 將所有不包含*的行中的所有IF用if替代。 第3章 vi文本編輯器 3.3.2 文件操作與退出命令 文件操作命令包括讀文件和寫(xiě)文件操作。讀文件就是將文件的內(nèi)容 讀入編輯緩沖區(qū)中,寫(xiě)文件就是將編輯緩沖區(qū)的內(nèi)容保存到文件中。在 退出vi時(shí),可以選擇是否保存文件。以下是常用的退出和文件操作命令: :w 文件名 寫(xiě)入指定文件。若未指定文件則寫(xiě)入當(dāng)前文件,即vi啟 動(dòng)時(shí)打開(kāi)的文件。 :q :wq、:x :q! :e! :e 文件名 :r 文件名 :f 未修改原文件,不保存文件,直接退出。 保存文件并退出。 放棄修改,不保存文件,退出。 放棄修改,編輯區(qū)恢復(fù)為文件原樣。 打開(kāi)指定的文件,調(diào)入編輯區(qū)。 讀入指定的文件,將文件內(nèi)容插入到光標(biāo)位置。 在屏幕末行顯示文件相關(guān)信息。 第3章 vi文本編輯器 3.3.3 其他常用命令 1. 行編輯命令 行編輯命令用于對(duì)指定的行進(jìn)行編輯。在指定行范圍時(shí),可以用 “.”代表當(dāng)前行,用“$”代表最后一行,用“%”代表所有行。常用的行 編輯命令如下: :n :n1,n2con3 :n1,n2mn3
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內(nèi)設(shè)計(jì)承包合同書(shū)
- 投資合作意向協(xié)議書(shū)
- 優(yōu)化辦公效率實(shí)施方案大全
- 網(wǎng)絡(luò)安全服務(wù)合作框架協(xié)議
- Unit 6 Section A (1a-2c) 教學(xué)設(shè)計(jì)2024-2025學(xué)年人教新目標(biāo)八年級(jí)英語(yǔ)下冊(cè)
- 魯教版九年級(jí)化學(xué)第十單元《化學(xué)與健康》(同步教學(xué)設(shè)計(jì))
- 第12課《臺(tái)階》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- 第24課《寓言四則》之《赫爾墨斯和雕像者》讀寫(xiě)課教學(xué)設(shè)計(jì) 2024-2025學(xué)年 統(tǒng)編版(2024)七年級(jí)上冊(cè)語(yǔ)文
- 北京市家庭居室裝飾裝修工程合同8篇
- 第八單元課題3金屬資源的利用和保護(hù)教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)下冊(cè)
- 施工圖設(shè)計(jì)技術(shù)交底文檔
- GA/T 1780-2021多道心理測(cè)試實(shí)驗(yàn)室建設(shè)規(guī)范
- PPT模板第二講運(yùn)動(dòng)選材概述運(yùn)動(dòng)選材學(xué)
- 教育心理學(xué)陳琦課件
- 唐詩(shī)中的中醫(yī)藥知識(shí)-PPT幻燈片
- 四川省瀘州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 《鄒忌諷齊王納諫》課件(共45張)
- 機(jī)械制圖教學(xué)課件(全套)
- 熱能與動(dòng)力工程測(cè)試技術(shù)- 液位測(cè)量
- 化學(xué)纖維精品課件
- 中式面點(diǎn)師初級(jí)(五級(jí))教學(xué)計(jì)劃、大綱
評(píng)論
0/150
提交評(píng)論