Linux的那些事兒(2) vi的使用

2021-04-26 17:08:44 字數 2384 閱讀 1957

linux系統提供了乙個完整的編輯器家族系列,如ed、ex、vi和emacs等,按功能它們可以分為兩大類:行編輯器(ed、ex)和全螢幕編輯器(vi、emacs)。行編輯器每次只能對一行進行操作,使用起來很不方便。而全螢幕編輯器可以對整個螢幕進行編輯,使用者編輯的檔案直接顯示在螢幕上,修改的結果可以立即看出來,克服了行編輯的那種不直觀的操作方式,便於使用者學習和使用,具有強大的功能。

vi是linux系統的第乙個全螢幕互動式編輯程式,它從誕生至今一直得到廣大使用者的青睞,歷經數十年仍然是人們主要使用的文字編輯工具,足見其生命力之強,而強大的生命力是其強大的功能帶來的。

本文中,我們將循序漸進地介紹如何使用vi來建立、編輯、顯示以及處理檔案。

一、vi的簡介

vi是「visual inte***ce」的簡稱,它在linux上的地位就彷彿edit程式在dos上一樣。它可以執行輸出、刪除、查詢、替換、塊操作等眾多文字操作,而且使用者可以根據自己的需要對其進行定製,這是其他編輯程式所沒有的。 54ne.com

vi不是乙個排版程式,它不象word或wps那樣可以對字型、格式、段落等其他屬性進行編排,它只是乙個文字編輯程式。

vi沒有選單,只有命令,且命令繁多。vi有三種基本工作模式:命令列模式、文字輸入模式和末行模式。

命令列模式

任何時候,不管使用者處於何種模式,只要按一下鍵,即可使vi進入命令列模式;我們在shell環境(提示符為$)下輸入啟動vi命令,進入編輯器時,也是處於該模式下。

在該模式下,使用者可以輸入各種合法的vi命令,用於管理自己的文件。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋,若輸入的字元是合法的vi命令,則vi在接受使用者命令之後完成相應的動作。但需注意的是,所輸入的命令並不在螢幕上顯示出來。若輸入的字元不是vi的合法命令,vi會響鈴報警。

文字輸入模式

在命令模式下輸入插入命令i、附加命令a 、開啟命令o、修改命令c、取代命令r或替換命令s都可以進入文字輸入模式。在該模式下,使用者輸入的任何字元都被vi當做檔案內容儲存起來,並將其顯示在螢幕上。在文字輸入過程中,若想回到命令模式下,按鍵即可。

末行模式

末行模式也稱ex轉義模式。

二、vi的命令

2.1 游標命令

k、j、h、l——上、下、左、右游標移動命令。雖然您可以在linux中使用鍵盤右邊的4個游標鍵,但是記住這4個命令還是非常有用的。這4個鍵正是右手在鍵盤上放置的基本位置。

ng——跳轉命令。n為行數,該命令立即使游標跳到指定行。

ctrl+g——游標所在位置的行數和列數報告。

w、b——使游標向前或向後跳過乙個單詞。

2.2 編輯命令

cw、dw——改變(置換)/刪除游標所在處的單詞的命令 (c=change、d=delete)。

x、d$、dd——刪除乙個字元、刪除游標所在處到行尾的所有字元以及刪除整行的命令。

2.3 查詢命令

/string、?string——從游標所在處向後或向前查詢相應的字串的命令。

2.4.拷貝複製命令

yy、p——拷貝一行到剪貼簿或取出剪貼簿中內容的命令。

三、vi的使用

3.1 建立檔案或者開啟檔案

開啟終端輸入:vi helloworld.c(命令列模式)

--->如果當前目錄下有helloworld.c這個檔案,那麼使用上面的命令會開啟該檔案

--->如果當前目錄下不存在該檔案,則會開啟乙個空白檔案,並在螢幕最下行顯示「--insert--」(插入)字樣

3.2 開始編輯

剛開啟後的介面在螢幕最下行顯示「--insert--」(插入)字樣

此時在鍵盤上按下 i 鍵即可進行操作(文字輸入模式)

具體的命令使用在第二部分給出的詳細資訊

3.3 退出儲存/退出不儲存

在編輯完後,如果使用者需要退出,在鍵盤上按動esc按鍵(

末行模式)

---->如果需要儲存,輸入 :wq 即可(冒號必不可少)

---->如果不需要儲存,輸入:q即可

四、參考資料

1、linux作業系統下vi編輯器常用命令介紹:http://www.zdnet.com.cn/server/2008/0312/765986.shtml

2、linux常見命令:螢幕文字編輯器vi:http://www.bitscn.com/linux/command/200604/6593.html

3、linux下vi的基本用法:http://www.cnblogs.com/forward/archive/2009/02/10/1387803.html

4、實用技巧:linux作業系統vim/vi程式設計提速:

TCP的那些事兒(2)

tcp要保證所有的資料報都到達,就必須要採取重傳機制,注意 接收端給傳送端的ack只能確定最大連續的包,比如,傳送端傳送了1,2,3,4,5個資料報,但是接收端只收到了1,2,所以ack 3,然後收到了4 這時候3還沒有收到 此時的tcp會怎麼辦呢?正如前面所說的,sequence number都是...

Linux探索 2 軟體安裝那些事兒

linux下軟體安裝那些事兒 1.軟體包 由於linux的版本問題,軟體包主要分為兩大陣營 rpm和.deb。對於這兩中包組織格式,分別對應了apt get和dpkg的安裝工具。2.rpm的使用 常用命令 a 安裝軟體包 rpm ivh test.rpm b 查詢已安裝的軟體包 rpm qa tes...

linux關於檔案的那些事兒

乙個檔案的許可權對於系統的安全來說是很重要的,linux是乙個支援多工多使用者的系統,我們都不希望一些自己的檔案被別人看到或者修改!對於乙個檔案的許可權我們可以用ls l 命令來檢視,例如 root localhost touch 1.php 建立乙個1.php檔案 這裡使用的root賬戶 root...