學習vi和vim編輯器(6):ex編輯器概述(1),vimex

來源:互聯網
上載者:User

學習vi和vim編輯器(6):ex編輯器概述(1),vimex

vi編輯器使用的底層編輯器就是ex行編輯器,可以認為vi編輯器是ex行編輯器的可視化模式。ex可以給你機動性更高,能力更強的編輯命令。ex以行為導向,在對檔案做大規模改變時就成了優點。

開啟檔案:

" ex filename "命令使用ex行編輯器開啟檔案,它列出來了檔案的總行數及命令提示字元(:),此時無法看到檔案的任何一行,除非下達顯示一行或多行的ex命令,如所示:

ex命令由行地址(可以只是一個行號)以及相應的命令構成。最基本的命令就是p,代表列印(到螢幕),所以在命令提示字元中輸入" 1p "代表列印第一行。此時甚至可以省略p,單純的輸入行號等價於顯示該行。通過在兩個數值間用逗號分隔來指定一個範圍的行號,例如" 1,3 "代表第1至第3行。沒有行號的命令只會對當前行起作用。

輸入" :vi "命令可以從ex編輯器進入vi編輯器,也可以在vi編輯器中輸入" Q "進入ex編輯器。想在vi編輯器中使用ex編輯器命令,必須輸入特定字元 :(冒號)。在冒號後面輸入行號,就可以直接跳轉到該行,例如" :6 "等效於vi編輯器中的" 6G "命令,都是將游標移動到第6行。

用ex編輯:

許多負責常見編輯操作的ex命令在vi中都有相應的更簡單的命令。但是如果需要改變許多行時,ex命令可能更有用。常見的ex命令有:

全名    縮寫   功能

delete  d    刪除行

move   m   移動行

copy    co  複製行

             t    複製行

行地址:每一個ex編輯命令都需要知道要編輯的行號。指定行地址有如下幾種方法:

(1)明確的指定行號;

(2)用符號來指定相對於當前位置的行號;

(3)標識某些行的搜尋模式作為地址;

定義行範圍:通過行號來清楚地定義某一行或某段行的範圍。明確的指定行號也稱為絕對行地址。例如

:3,18d 刪除3到18行;

:160,224m23 將第160行到第244行移動到第23行之後;

:23,29co100  將第23行到第29行複製到第100行之後;

通過:set nu 或:set number 來顯示行號,通過:set nonu或者 :set nonumber來關閉行號的顯示。 可以通過#來暫時顯示某些行的行號,例如" :1,10# "可以暫時顯示第1行到第10行的行號。另外通過如下命令也可以得到行號的資訊:

:= 列出檔案的總行數;

:.= 列出當前行的行號;

:/pattern/= 列出pattern第一次出現時的行號;

行定址符號:可以使用符號表示行地址,這些行定址符號可以和絕對行地址合并使用。

. 表示當前行;

$表示檔案的最後一行;

%表示檔案的每一行,等同於" 1,$ "的組合;

例如" : . ,$ d "刪除當前行到檔案結尾間的文本。" :20 , . m $ "將第20行到當前行的檔案內容移動到檔案結尾。" :%d "刪除檔案的所有行。" :%t$ "將所有行複製到檔案的結尾(做連續的複製)。

除了指定絕對行地址之外,還可以指定相對於當前這一行的地址。+與-代表加上或減去後面的數值,例如" : . , +20d "刪除當前這一行到該行之後20行的檔案內容。" :226 , $ m  -2 "將第226行到檔案結尾的檔案內容移動到當前行的兩行之前。數字0表示檔案開頭,也就是第一行文本之前,所以0等效於1-。

搜尋模式:使用搜尋模式也可以指定行地址。例如

:/pattern/d 刪除下一個包含pattern的行;

:/pattern/+d刪除下一個包含pattern的行的下一行;

:/pattern1/,/pattern2/d 從第一個包含pattern1的行刪除到第一個包含pattern2的行;

這些模式的前後都要使用斜線作為分界線。

重新定義當前這一行的位置:當用分號代替逗號時,第一個行地址將會作為當前行地址,即使此時游標不在該行上。例如" :100;+5 p " 即可顯示第100行及其之後5行的內容。

全域搜尋:

ex中有一個全域命令g,可以搜尋模式並顯示所有包含這個模式的行。而" :g! "的功能則正好與" :g "相反,搜尋所有不包含指定模式的行。

:g/pattern 尋找(移到)檔案最後一次出現pattern的地方;

:g/pattern/p 尋找並顯示檔案中所有包含pattern的行;

:g!/pattern/nu 尋找並顯示檔案中所有不包含pattern的行,同時顯示所有找到行的行號;

:60,124g/pattern/p 尋找並顯示第60行與第124行之間包含pattern的行。

合并ex命令:

想輸入新的ex命令,並不是每次都需要輸入冒號,可以使用豎線(|)分隔命令,從而在同一個ex提示符下合并多個命令。

儲存並離開檔案:

:w  將緩衝區的內容寫入到檔案中,但不離開。編輯檔案時應該經常使用" :w ";

:q  離開編輯器;

:wq 寫入檔案同時離開編輯器,這是無條件寫入,即使檔案沒有被修改;

:x  寫入檔案同時離開編輯器。只有檔案被修改過時才會寫入;


本章vi命令總結:

ex,1p,1,2p,d,m,co,t,:=,:.=,:/pattern/=,.,$,% ,+,-,:/pattern/d,:g,:g!,|,:w,:q,

:wq,:x


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.