嵌入式linux上的c語言編程實踐 第3章.doc_第1頁
嵌入式linux上的c語言編程實踐 第3章.doc_第2頁
嵌入式linux上的c語言編程實踐 第3章.doc_第3頁
嵌入式linux上的c語言編程實踐 第3章.doc_第4頁
嵌入式linux上的c語言編程實踐 第3章.doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

童夢無憂網(wǎng) 試管嬰兒論壇 本文由星空下的松海貢獻(xiàn) ppt文檔可能在WAP端瀏覽體驗不佳。建議您優(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ì)上是一個文本驅(qū)動(text-driven) 的操作系統(tǒng)。文本文件就是全部由ASCII碼字符及某種語言 的編碼字符構(gòu)成的文件,不含有任何樣式和格式信息。文本 文件可以被任何文本編輯器解釋而不會出現(xiàn)亂碼,還可以被 所有程序操作和使用。在Linux系統(tǒng)中,文本文件被廣泛地 用作系統(tǒng)配置文件和系統(tǒng)工具軟件的操作對象。這使得用戶 可以在文本方式下完成所有的工作,如編寫程序和命令腳本、 讀/寫電子郵件、配置和管理系統(tǒng)等。而完成所有這些工作 的基本工具就是文本編輯器。因此,Linux的用戶應(yīng)當(dāng)熟悉 至少一種文本編輯器。 第3章 vi文本編輯器 3.1.1 vi文本編輯器介紹 文本編輯器介紹 Linux下的文本編輯器有ex、sed、vi和emacs等很多種。 其中,vi是最基本的文本編輯工具。vi(visual)誕生于1978年, 由柏克萊大學(xué)的Bill Joy編寫。從其誕生至今,vi始終是所有 Unix/Linux系統(tǒng)上必配的編輯器,甚至在DOS、Windows、 Macintosh、OS/2乃至IBM大型機(jī)S/390系統(tǒng)上都能見到vi的 某個版本。目前Linux系統(tǒng)上流行的版本是vi增強版vim(vi improved)。vim是一個開放源代碼軟件,它在vi的基礎(chǔ)上增 強了功能,也更容易使用?,F(xiàn)在許多Linux發(fā)行版中的vi就 是vim。本書中所說的vi也兼指vim,但有一些選項可能只有 vim支持。 第3章 vi文本編輯器 vi是一個全屏幕文本編輯器,具有文本編輯所需的所有 功能。vi以高效和快捷著稱,這是vi能夠在編輯器領(lǐng)域中保 持幾十年領(lǐng)先地位的原因。以下介紹vi的幾個突出特點。 第3章 vi文本編輯器 1. 編輯功能強大 vi的編輯功能十分強大,除通常的編輯功能外,vi還支 持一些高級編輯特性,如正則表達(dá)式、宏和命令腳本。利用 這些特性可以完成非常復(fù)雜的編輯任務(wù),實現(xiàn)編輯的智能化 和自動化。另一方面,vi的功能又十分專注,它只是一個編 輯器,沒有其他功能。Linux系統(tǒng)提供了許多專門用途的工 具,如排版、排序、流過濾、E-mail、編譯等軟件。vi可以 和這些工具軟件協(xié)同工作,從而實現(xiàn)幾乎所有的文件加工處 理任務(wù)。用一些小而精悍、功能專一的工具結(jié)合起來完成復(fù) 雜的處理功能,這正是Unix的設(shè)計哲學(xué)。 第3章 vi文本編輯器 2. 適用于各種版本的 適用于各種版本的Unix/Linux系統(tǒng) 系統(tǒng) vi是Unix/Linux系統(tǒng)的標(biāo)準(zhǔn)文本編輯器,幾乎每一臺 Unix/Linux系統(tǒng)上都會有vi,這是其他編輯器無法相比的。 3. 適用于各種類型的終端 vi得以廣泛應(yīng)用的原因之一是它對終端設(shè)備的廣泛適應(yīng) 性。不管是只有打字機(jī)鍵盤加Esc鍵的簡單終端,還是受通 信限制的遠(yuǎn)程終端,或是配有完備的功能鍵和鼠標(biāo)的現(xiàn)代化 終端,都可以很好地支持vi完成文本編輯工作。 第3章 vi文本編輯器 4. 使用靈活快捷 廣泛適應(yīng)性帶來的問題是繁多的命令。對于同一項編輯 操作,vi提供了許多不同的命令。vi的命令都很簡練,往往 是單個字符或少數(shù)幾個字符的組合。對初學(xué)者來說,使用這 些命令并不方便,甚至過于復(fù)雜。但對于熟練的用戶來說, 更多的選擇意味著更大的自由,簡單的命令意味著更少的擊 鍵次數(shù)。正因為如此,vi被看做是Linux開發(fā)人員和系統(tǒng)管 理員的編輯利器。初學(xué)者經(jīng)過一段時間的使用,也會逐漸習(xí) 慣vi的操作方式,并形成自己特有的操作風(fēng)格。 第3章 vi文本編輯器 3.1.2 vi的工作模式 的工作模式 vi是一個多模式的軟件,它有三種工作模式。在不同的 工作模式下,它對輸入的內(nèi)容有不同的解釋。 1. 命令模式 命令模式(Command mode) 在命令模式下,輸入的任何字符都作為命令來解釋執(zhí)行, 屏幕上不顯示輸入內(nèi)容。命令模式用于完成各種文本修改工 作。 2. 輸入模式 輸入模式(Insert mode) 在輸入模式下,輸入的任何字符都將作為文件的內(nèi)容被 保存,并顯示在屏幕上。輸入模式用于完成文本錄入工作。 第3章 vi文本編輯器 3. 末行模式 末行模式(Last line mode) 末行模式也稱為ex轉(zhuǎn)義模式。在末行模式下,光標(biāo)停留 在屏幕的最末行,在此接收輸入的命令并執(zhí)行。末行模式用 于執(zhí)行一些全局性操作,如文件操作、參數(shù)設(shè)置、查找與替 換、拷貝與粘貼、執(zhí)行Shell命令等。 在文本編輯過程中,用戶可以控制vi在這三種工作模式 之間進(jìn)行切換,完成各種編輯工作。三種模式之間的轉(zhuǎn)換關(guān) 系如圖3-1所示。 第3章 vi文本編輯器 圖3-1 vi工作模式的轉(zhuǎn)換 第3章 vi文本編輯器 3.1.3 vi的啟動與退出 的啟動與退出 在Shell下輸入vi命令后,便進(jìn)入全屏幕編輯環(huán)境,命令 格式是:vi 文件名 vi的啟動過程是:先建立一個編輯緩沖區(qū),若指定了文 件且該文件已存在,則將其內(nèi)容讀到編輯緩沖區(qū)中;若指定 的文件不存在,則建立此文件。然后將光標(biāo)定位在第1行第1 列的位置上。圖3-2是vi啟動后的初始界面。屏幕末行顯示 的是文件的名稱、狀態(tài)、行數(shù)和字符數(shù)、光標(biāo)位置(行號, 列號)等信息。光標(biāo)位置的字符通常用反顯方式或下劃線方 式顯示?!啊北硎揪庉媴^(qū)的空行,它們不是文件的組成部 分。 第3章 vi文本編輯器 圖3-2 vi的初啟界面 第3章 vi文本編輯器 vi啟動后首先進(jìn)入命令模式。此時,用戶可以使用vi的 編輯命令進(jìn)行文本的輸入和修改。具體的用法在第3.2節(jié)介 紹。注意:編輯命令只是修改調(diào)入編輯緩沖區(qū)中的文件的副 本,文件本身不會被修改。所以,編輯完成后,要用:wq命 令將修改后的內(nèi)容保存到文件中并退出vi。若此次運行未對 原文件作任何修改,則可用:q命令退出。圖3-3示意了退出 命令的用法,更多的文件操作和退出命令在第3.3節(jié)介紹。 第3章 vi文本編輯器 圖3-3 vi的退出 第3章 vi文本編輯器 3.2 vi基?本?命?令 基 vi的命令繁多,但通常的編輯工作只需要掌握其中一小 部分命令。而對于一些特殊的操作或編輯任務(wù),總能夠在vi 手冊中找到適當(dāng)?shù)拿睢?vi的常用編輯命令分為以下幾類: 屏幕翻滾命令; 移動光標(biāo)命令; 插入與刪除命令; 修改與替換命令; 拷貝與粘貼命令; 復(fù)原與重復(fù)命令。 第3章 vi文本編輯器 vi的命令通常是簡單的字符(如a、s、c)或是字符組合 (如dw、cc),還有少數(shù)幾個控制鍵組合字符(如Ctrl+u)。這 就是說,僅僅通過普通鍵盤就可以實現(xiàn)所有編輯工作,完全 不需要用鼠標(biāo),也不倚賴于某些控制鍵。比起使用鼠標(biāo)和復(fù) 雜控制組合鍵來說,鍵入字符命令的速度要快得多。因此, 熟練使用這些字符命令能夠提高編輯的效率。 盡管只用字符命令就可以完成所有編輯工作,vi還是提 供了對現(xiàn)代鍵盤上的編輯鍵的支持。適當(dāng)?shù)厥褂眠@些熟悉的 按鍵將使編輯操作更加輕松。表3-1列出了這些鍵在不同模 式下的作用。 第3章 vi文本編輯器 表 3-1 vi 按鍵功能說明 按 Home End PageDown PageUp Delete Insert Backspace Space Enter 鍵 命令模式 移動光標(biāo)到行的最前面 移動光標(biāo)到行的最后面 向下翻一頁 向上翻一頁 刪除光標(biāo)位置的字符 進(jìn)入輸入模式 光標(biāo)前移一個字符 光標(biāo)后移一個字符 光標(biāo)下移一個字符 按箭頭方向移動光標(biāo) 輸入模式 移動光標(biāo)到行的最前面 移動光標(biāo)到行的最前面 移動光標(biāo)到行的最前面 移動光標(biāo)到行的最前面 移動光標(biāo)到行的最前面 替換-插入 刪除光標(biāo)前的字符 空格 換行 按箭頭方向移動光標(biāo) 末行模式 移動光標(biāo)到行的最前面 移動光標(biāo)到行的最前面 向下翻找歷史命令 向下翻找歷史命令 同左,行尾時同 Backspace 無效 刪除光標(biāo)前的字符 空格 提交命令 前后移動光標(biāo), 上下翻 找歷史命令 第3章 vi文本編輯器 以下分類介紹常用的vi命令。注意:在命令模式下輸入 的字符都被vi解釋為命令,不在屏幕上顯示。若輸入的是非 法命令則響鈴報警。此外,vi的命令是區(qū)別大小寫的,即大 寫字母和小寫字母代表的是不同的命令。 第3章 vi文本編輯器 3.2.1 屏幕翻滾 當(dāng)編輯的文件比較大時,使用翻屏命令可以快速地將要編輯的區(qū)域 調(diào)入屏幕顯示區(qū)。用PageDown和PageUp鍵可以方便地實現(xiàn)上下翻屏, 但在有些場合下需要用命令來實現(xiàn)更靈活的翻屏操作。常用的幾個翻屏 命令介紹如下。 翻屏命令: Ctrl+u: Ctrl+d: Ctrl+f: Ctrl+b: 向上翻半屏。 向下翻半屏。 向下翻一屏。同PageDown鍵。 向上翻一屏。同PageUp鍵。 nz+Enter:將第n行滾至屏幕頂部,不指定n時將當(dāng)前行滾至屏幕 頂部。 第3章 vi文本編輯器 3.2.2 光標(biāo)定位與移動 在輸入或修改文本前,應(yīng)先將光標(biāo)移到適當(dāng)?shù)奈恢谩i 不支持用鼠標(biāo)移動光標(biāo)的方式,但以下命令可以更加高效地 定位和移動光標(biāo)。 光標(biāo)定位命令: 0 $ nG n| H、M、L 光標(biāo)移至行首。同Home鍵。 光標(biāo)移至行首第1個非空格字符。 光標(biāo)移至行尾。同End鍵。 光標(biāo)移到第n行,未指定n時移到末行。 光標(biāo)移到第n列,未指定n時移到首列。 光標(biāo)移到屏幕首、中、尾行行首。 第3章 vi文本編輯器 光標(biāo)移動命令: h、j、k、l 光標(biāo)向左、下、上、右移一個字符。同 箭頭鍵。 b、w e (、) 、 光標(biāo)移到上一個詞、下一個詞首。 光標(biāo)移到詞尾。 光標(biāo)移到句首、句尾。 光標(biāo)移到段首、段尾。 注:以上光標(biāo)移動命令前帶數(shù)字n時,表示重復(fù)移動n次。 如:2h為左移2格,3e為移到后面第3個詞的詞尾。 第3章 vi文本編輯器 3.2.3 文本輸入與刪除 1. 文本的輸入 在輸入文本內(nèi)容之前,應(yīng)先將光標(biāo)定位在要輸入的位置 上,然后執(zhí)行插入命令,進(jìn)入輸入模式。處于輸入模式時, 屏幕底部會顯示“插入”提示,表示后續(xù)的輸入都作為 文件的輸入內(nèi)容。輸入完成后按Esc鍵就可返回命令模式。 插入(insert)命令都是單字符命令,可以靈活地實現(xiàn)在當(dāng) 前光標(biāo)位置的前、后、行首、行尾、上一行、下一行開始輸 入。 第3章 vi文本編輯器 插入命令: a、A i、I 在光標(biāo)位置后、行尾后開始插入。 在光標(biāo)位置前、行首前開始插入。i的 作用與Insert鍵相同。 o、O 新行開始插入。 圖3-4所示為插入命令的用法。 在光標(biāo)所在行之后、光標(biāo)所在行之前的 第3章 vi文本編輯器 圖3-4 插入命令用法示意 第3章 vi文本編輯器 2. 文本的刪除 刪除(delete)文本的最簡單方法是將光標(biāo)移到要刪除的 字符上,然后,每按一下x鍵或Delete鍵就會刪掉一個字符。 若要刪除的文本較多時,可以使用下面更加靈活的刪除命令。 刪除命令: 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)處的字符直到下一個詞的詞首。w代表下一 詞詞首。 注:以上命令前帶數(shù)字n時,表示刪除的范圍擴(kuò)大n倍。如:3dd為 刪除3行,2de為刪除從光標(biāo)開始的2個詞。 圖3-5所示為刪除命令的用法。 第3章 vi文本編輯器 圖3-5 刪除命令用法示意 第3章 vi文本編輯器 3.2.4 文本修改與替換 1. 文本的修改 文本修改(correct)是指改寫一部分文本的內(nèi)容,修改的過程是:先 刪除指定范圍內(nèi)的文本,然后插入新文本,最后用Esc鍵結(jié)束插入。以 下介紹幾個常用的修改命令。 修改命令: 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時,表示修改的范圍擴(kuò)大n倍。 如:5cc為修改從光標(biāo)所在行開始的5行,3cw為修改從光標(biāo) 開始的3個詞。 例3.1 修改命令的用法: 原文本行: 執(zhí)行命令cwbear: Whos afraid of the big wolf?Whos afraid of the big bear? 第3章 vi文本編輯器 移動光標(biāo): 執(zhí)行命令Clitter lamb?: 移動光標(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)是指用一個字符替換另一個字符,這是一種覆蓋操作, 替換后文本的長度保持不變。替代(substitute)則是指用多個字符取代一 個字符或一行,是一個先刪除后插入的操作。通常情況下,替代后的文 本長度會發(fā)生變化。以下介紹常用的替換與替代命令。 替換與替代命令; r 用輸入的字符替換光標(biāo)處的字符。 R 用輸入的文本逐個替換從光標(biāo)處開始的各個字符,直到按下Esc 鍵。 s 用輸入的文本替代光標(biāo)處的字符,用Esc鍵結(jié)束輸入,等同于cl。 S 用輸入的文本替代光標(biāo)所在的行,用Esc鍵結(jié)束輸入,等同于cc。 第3章 vi文本編輯器 注:以上命令前帶數(shù)字n時,表示替換或替代的范圍擴(kuò)大n倍。如: 4r為用輸入的字符替換從光標(biāo)處開始的4個字符,2s為用輸入的文本替代 從光標(biāo)處的開始的2個字符。3S為用輸入的文本替代從光標(biāo)所在的行開 始的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ù)制到一個緩沖區(qū)中(類似于 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時,表示拷貝和粘貼的范圍擴(kuò) 大n倍。如:2yy為拷貝從光標(biāo)所在行開始的2行,3yw為拷 貝從光標(biāo)開始的3個詞。 圖3-6所示為拷貝與粘貼命令的用法。 第3章 vi文本編輯器 圖3-6 拷貝與粘貼命令用法示意 第3章 vi文本編輯器 此外,vim還支持鼠標(biāo)粘貼與復(fù)制。在輸入模式下,將 光標(biāo)移到要粘貼的位置,用鼠標(biāo)選中要復(fù)制的文本,再按鼠 標(biāo)中鍵即可。 第3章 vi文本編輯器 3.2.6 撤銷與重做 撤銷(undo)即消除上一個命令所做的修改,恢復(fù)到命令 執(zhí)行前的樣子。重做(redo)就是重復(fù)執(zhí)行上一個命令。 撤銷與重做命令: u U 撤銷上一個命令所做的修改。 撤銷最近針對一行所做的全部修改。在對一行 連續(xù)做了多處修改后,用此命令可以一次恢復(fù)全行。 . 重復(fù)前一個命令。 利用撤銷和重做命令可以提高編輯的效率,減少擊鍵次 數(shù),如圖3-7所示。 第3章 vi文本編輯器 圖3-7 撤銷與重做命令用法示意 第3章 vi文本編輯器 3.3 vi常用末行命令 常用末行命令 在命令模式下,輸入“:”、“/”或“?”字符(稱為ex轉(zhuǎn) 義字符)都將進(jìn)入末行模式,隨后的輸入被解釋為行命令, 在屏幕末行顯示。輸入完成后按Enter鍵執(zhí)行。末行命令執(zhí) 行結(jié)束后返回命令模式,或退出vi。 末行命令主要有以下幾類: 字符串搜索與替換命令; 文件操作與退出命令; 其他命令。 第3章 vi文本編輯器 3.3.1 搜索與替換命令 1. 字符串搜索 要在一個大文件中查找某個字符串,可以用字符串搜索命令。執(zhí)行 搜索命令后,光標(biāo)將停留在第一個匹配字符串的首字符處。按“n”或 “N”則移到下一個匹配字符串之首。如果不存在匹配的字符串,則會在 末行上顯示“找不到模式”。搜索命令有以下兩種: /模式 ?模式 從光標(biāo)處向后搜索與指定模式匹配的字符串。按n向后 繼續(xù)找。 從光標(biāo)處向前搜索與指定模式匹配的字符串。按N向前 繼續(xù)找。 例如:執(zhí)行/and命令,光標(biāo)將從當(dāng)前位置移到后面第一個“and”的 字符“a”上。按n移到下一個“and”上。當(dāng)搜索到文件尾時,再按n則返 回到文件頭繼續(xù)搜索。 第3章 vi文本編輯器 2. 字符串替換 字符串替換使用s命令,它的功能是在指定的行中搜索 與指定模式相匹配的字符串,并用另一個字符串替換它。 s命令的一般格式是::n1,n2s/p1/p2/gc 其中n1, n2表示目標(biāo)行的行號范圍,可以用“%”代表所 有行;未指定范圍時,目標(biāo)行就是光標(biāo)所在的當(dāng)前行。p1是 用做搜索的字符串模式,p2是用做替換的字符串模式。模式 中可以用“”代表行首,“$”代表行尾。s命令可以帶g和c 選項。g表示替換目標(biāo)行中所有匹配的字符串,沒有g(shù)的話則 只替換目標(biāo)行中第一個匹配的字符串。選項c表示替換前要 求用戶確認(rèn)。 第3章 vi文本編輯器 例3.3 s命令的用法: :s/the/The/ :s/is/are/g :s/is a/has a/gc 將當(dāng)前行中第1個the改為The。 將當(dāng)前行中所有is改為are。 將當(dāng)前行中所有is a改為has a。替換 前提示用戶確認(rèn)。 :1,6s/IF/if /g :%s/ /g 將第1至6行中的所有IF用if替代。 在所有行的行首處加4個空格。 第3章 vi文本編輯器 3. 全局命令 全局命令g(global)的功能是在全文中搜索含有與指定模式相匹配的 字符串的行,對匹配的行做標(biāo)記。g命令的格式是: :g/p1 :g!/p1 搜索所有包含p1字符串模式的行。 搜索所有不包含p1字符串模式的行。 例如::g/and命令將找出所有含有“and”的行;:g!/and/命令找出所 有不含“and”的行。 vi的許多末行命令都是針對行的編輯命令(見3.3.3小節(jié))。g命令可以 與這些面向行的命令聯(lián)合使用,它的作用是修飾這些命令,為其確定滿 足某個條件的目標(biāo)行。在g命令的修飾下,這些行編輯命令就可用來完 成面向全文的、按模式篩選的編輯操作。g命令與其他命令聯(lián)合使用的 格式是: 第3章 vi文本編輯器 :g/p1/命令 :g!/p1/命令 對所有包含p1的行執(zhí)行指定的命令。 對所有不包含p1的行執(zhí)行指定的命令。 例如:p命令的功能是顯示行,:g/and/p命令將顯示所有 含有“and”的行;d命令的功能是刪除行,:g!/Note/d命令將 刪除所有不含“Note”的行。 第3章 vi文本編輯器 4. 全局替換 s命令是面向行的字符串替換命令。s命令經(jīng)常與g命令 聯(lián)合使用,實現(xiàn)更靈活更細(xì)致的全局替換功能。 全局替換命令的一般格式是:g命令/s命令。其含義是: 先用g命令在文件中搜索含有某個模式的行,并做標(biāo)記,然 后用s命令對所有有標(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的簡寫,即當(dāng)s命令的搜索模式與g 命令的搜索模式相同時,可以省略s中的搜索模式。 注意:此處/之間沒有空格。 例3.4 全局替換命令的用法: :g/the/s/The/ :g/is/s/are/g :g/Mary/s/1988/g 將文中所有行的第1個the改為The。 將文中所有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 文件操作與退出命令 文件操作命令包括讀文件和寫文件操作。讀文件就是將文件的內(nèi)容 讀入編輯緩沖區(qū)中,寫文件就是將編輯緩沖區(qū)的內(nèi)容保存到文件中。在 退出vi時,可以選擇是否保存文件。以下是常用的退出和文件操作命令: :w 文件名 寫入指定文件。若未指定文件則寫入當(dāng)前文件,即vi啟 動時打開的文件。 :q :wq、:x :q! :e! :e 文件名 :r 文件名 :f 未修改原文件,不保存文件,直接退出。 保存文件并退出。 放棄修改,不保存文件,退出。 放棄修改,編輯區(qū)恢復(fù)為文件原樣。 打開指定的文件,調(diào)入編輯區(qū)。 讀入指定的文件,將文件內(nèi)容插入到光標(biāo)位置。 在屏幕末行顯示文件相關(guān)信息。 第3章 vi文本編輯器 3.3.3 其他常用命令 1. 行編輯命令 行編輯命令用于對指定的行進(jìn)行編輯。在指定行范圍時,可以用 “.”代表當(dāng)前行,用“$”代表最后一行,用“%”代表所有行。常用的行 編輯命令如下: :n :n1,n2con3 :n1,n2mn3

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論