2 7 使用vi文字編輯器

2021-04-13 11:03:29 字數 4595 閱讀 5973

如果正在使用gui,那麼可以執行gedit,編輯文字時使用它相當直觀。還有乙個簡單的文字編輯器nano,可從shell執行它。但是多數linux shell使用者會使用vi或emacs命令來編輯文字檔案。與圖形編輯器相比,vi或emacs的優勢在於可以在任何shell、字元終端或基於字元的網路連線(例如,使用telnet或ssh)中使用它們,而無須使用gui。它們都具有強大的功能,所以可一直使用它們。

本節提供乙個簡單的vi文字編輯器教程,使用它可在任意shell中手動編輯配置檔案(如果vi不適合您,請參閱選讀部分「了解其他文字編輯器」了解其他選擇)。

vi編輯器在開始時很難學,可是一旦掌握了它,就永遠不必使用滑鼠或功能鍵了——使用鍵盤就可以快速高效地在檔案中編輯和移動。

了解其他文字編輯器

可供linux使用的文字編輯器有十幾個。下面是linux發行版中可能提供的,如果認為使用vi太費力,可以試用它們:

文字編輯器

描述nano

一款流行的簡單文字編輯器,用於很多可引導的linux和其他空間有限的linux環境。例如,nano通常用於在linux安裝過程中編輯文字檔案

gedit

在gui中執行的gnome文字編輯器

jed程式設計師使用的面向螢幕的編輯器。通過使用各種顏色,jed能夠突出顯示所建立的**,這樣就可以輕鬆閱讀**並找出語法錯誤。使用alt鍵選擇選單來操縱文字

joejoe編輯器與很多pc文字編輯器類似。使用ctrl和方向鍵在文字中移動。按ctrl+c不儲存退出,按ctrl+x儲存後退出

kate

kdebase軟體包中很漂亮的編輯器。它有很多功能,例如為不同型別的程式語言突出顯示和管理自動換行控制

kedit

kde桌面中基於gui的文字編輯器

mcedit

使用mcedit時,其功能鍵可幫助我們瀏覽、儲存、複製、移動和刪除文字。與jed和joe一樣,mcedit也是面向螢幕的

nedit

一款優秀的程式設計師編輯器。需要安裝可選的nedit軟體包才能獲得該編輯器

如果使用ssh登入網路上的其他linux計算機,就可以使用任意編輯器來編輯檔案。螢幕上會彈出乙個基於gui的編輯器。如果沒有gui,則需要在shell中執行的文字編輯器,如vi、jed或joe。

通常情況下,執行vi可開啟特定的檔案。例如,要開啟/tmp/test檔案,可輸入下面的命令:

$ vi /tmp/test

如果這是乙個新檔案,應該看到和下面類似的內容:~~

~~~"/tmp/test" [new file]

頂部的框表示游標的位置。底部的行通知編輯情況(此處只是開啟了乙個新檔案)。在這兩部分之間,波浪線(~)作為填充符,因為檔案中還沒有任何文字。現在這是令人害怕的部分:這裡沒有提示、選單或圖示告訴我們要做什麼。不能只是從頂部開始輸入。如果這樣做,計算機就會發出蜂鳴聲。所以有些人抱怨linux並不友好。

首先需要了解的是不同的操作模式:命令或輸入。vi編輯器始終啟動到命令模式。在新增或修改檔案中的文字前,必須輸入命令(乙個或者兩個字母加上乙個可選的數字)告訴vi您想要做什麼。大小寫很重要,所以要按例子所示精確地使用大寫或小寫字母!要進入輸入模式,輸入該輸入命令。輸入下面的命令開始操作:

·    a:新增命令。在它之後,可以從游標的右端開始輸入文字。

·    i:插入命令。在它之後,可以從游標的左端開始輸入文字。

輸入一些單詞,然後按enter鍵。重複執行該運算元次,直到有幾行文字為止。完成輸入後,按esc返回到命令模式。現在檔案中有一些文字了,試用下面的鍵或字母在文字中移動:

記住esc鍵!它始終可以回到命令模式。

·    方向鍵:在檔案中向上、下、左或右移動游標,一次乙個字元。也可以使用退格鍵和空格鍵分別向左和向右移動。如果喜歡將手指放在鍵盤上,可使用h(左)、l(右)、j(下)或k(上)來移動游標。

·    w:將游標移動到下個單詞的開頭。

·    b:將游標移動到前個單詞的開頭。

·    0(zero):將游標移動到當前行的開頭。

·    $:將游標稱動到當前行的末尾。

·    h:將游標移動到螢幕的左上角(螢幕上的第一行)。

·    m:將游標移動到螢幕中間行的第乙個字元。

·    l:將游標移動到螢幕的左下角(螢幕上的最後一行)。

·    x:刪除游標下的字元。

·    x:刪除游標前字元。

·    dw:刪除從當前字元開始直到當前單詞末尾的所有字元。

·    d$:刪除從當前字元開始直到當前行末尾的所有字元。

·    d0:刪除從前乙個字元開始直到當前行開頭的所有字元。

·    zz:將當前修改儲存到檔案並退出vi。

·    :wq:與zz相同。

·    :q:退出當前檔案。沒有任何未儲存的修改時該命令才會工作。

·    :q!:退出當前檔案,並且不儲存對檔案進行的修改。

如果確實錯誤地修改了檔案,那麼:q!命令是退出並且放棄修改的最好方法。檔案會還原到最近修改的版本。所以如果只是使用:w,有時可能會陷入困境。如果只想取消一些錯誤的編輯,按u鍵即可撤銷修改。

·    esc:記住,esc用於回到命令模式(我曾看到有人按下鍵盤上的所有鍵來嘗試退出檔案)。在esc後面鍵入zz可以退出命令模式、儲存檔案並退出vi。

·    u:按u鍵可以撤銷之前做的修改。連續按u可以撤銷更前面的修改。

·    ctrl+r:如果決定不再撤銷前面的命令,可使用ctrl+r進行恢復。本質上,這個命令取消所做的撤銷操作。

·    caps lock:小心不要錯按了caps lock鍵。處於大寫狀態時,在vi中輸入的任何內容都有不同的含義。輸入大寫字母時不會出現警告,但事情卻開始變得不可思議。

·    :!命令:在vi中,可使用:!後跟命令名的方式來執行命令。例如,輸入:!date檢視當前的時間和日期,輸入:!pwd檢視當前目錄,輸入:!jobs檢視後台是否有任務正在執行。命令執行完成時,按enter鍵就可以返回繼續編輯檔案。甚至可以使用該技術從vi中啟動shell(:!bash)、在該shell中執行幾個命令,然後鍵入exit返回到vi(我建議轉到shell前儲存檔案,防止回到vi後忘記儲存)。

·    --insert:處於插入模式時,insert一詞會出現在螢幕底部。

·    ctrl+g:如果忘記了正在編輯的內容,按下這些鍵可在螢幕底部顯示正在編輯的檔名和所在的行。它還顯示檔案的總行數、已瀏覽過的部分占該檔案的百分比,以及游標所在的列號。這用來在下午停止工作一段時間後,幫助您確定編輯的位置。

除了前面所述的幾個移動命令外,還有其他方法可在vi檔案中移動。要嘗試這些方法,可開啟乙個不會對其進行太大破壞的大檔案(把/var/log/messages複製到/tmp中,然後在vi中開啟它)。下面是一些可用的移動命令:

·    ctrl+f:向前翻頁,一次一頁。

·    ctrl+b:向後翻頁,一次一頁。

·    ctrl+d:向前翻頁,一次半頁。

·    ctrl+u:向後翻頁,一次半頁。

·    g:轉到檔案的末行。

·    1g:轉到檔案的首行(使用任意數字可轉到檔案中的該行)。

要搜尋文字在檔案中下次出現的位置,可使用斜線(/)或問號(?)字元。在斜線或問號後面加上模式(字串或文字)可分別向前或向後搜尋該模式。搜尋時也可以使用元字元。下面是一些例子:

·    /hello:向前搜尋單詞hello。

·    ?goodbye:向後搜尋單詞goodbye。

·    /the.*foot:向前搜尋包括單詞the,同時在the之後的某處有單詞foot的行。

·    ?[pp]rint:向後搜尋print或print。記住,linux中是區分大小寫的,所以可使用括號來搜尋大小寫不同的單詞。

vi編輯器最初基於ex編輯器,而ex編輯器不能在全屏模式下執行。但是它允許執行命令,以便同時在一行或者多行中搜尋和修改文字。輸入冒號並且游標到達螢幕底部時,實際上就處於ex模式中。下面的例子用ex命令搜尋和修改文字(我選擇搜尋local和remote,但也可使用其他合適的單詞)。

·    :g/local:搜尋單詞local,並且列印檔案中它所出現的行(如果結果多於乙個螢幕,則以管道形式將輸出定向到more命令)。

·    :s/local/remote:在當前行上用remote代替local。

·    :g/local/s//remote:用remote代替檔案中每行第一次出現的local。

·    :g/local/s//remote/g:用remote代替檔案中出現的所有local。

·    :g/local/s//remote/gp:用remote代替檔案中出現所有的local,然後列印每一行來檢視進行的修改(如果輸出多於一頁,則以管道形式將輸出定向到more命令)。

在多數vi命令前都可以使用數字,這樣命令就能夠重複執行該指定數目的次數。這是一次處理多行、多個單詞或多個字元的便捷方法。下面是一些例子:

·    3dw:刪除下面的3個單詞。

·    5cl:修改下面的5個字母(即刪除字母並進入輸入模式)。

·    12j:向下移動12行。

在多數命令前加上數字只是重複執行這些命令。此時對於使用vi命令應該相當精通了。

在很多linux系統中呼叫vi時,實際上正在呼叫vim文字編輯器,它執行在vi相容模式下。進行大量程式設計工作的人可能更願意使用vim,因為它以不同的顏色顯示不同的**層次。vim還有一些其他有用的功能,例如在開啟文件時,將游標放在最後一次退出檔案時游標所在的位置。

vi文字編輯器

一 操作模式 1 三種操作模式 命令模式 command mode 插入模式 input mode 末行模式 last line mode 2 執行與結束 在系統提示字元 如 下敲入vi 文件名稱 vi 可以自動幫你載入所要編輯的檔案或是開啟乙個新 檔案 如果該檔案不存在或缺少檔名 進入 vi 後螢...

VI文字編輯器

1.工作模式 2.命令列模式功能鍵 yy 複製當前游標所在行 n yy n為數字,複製當前游標開始的n行 p 貼上複製的內容到游標所在行 dd 刪除當前游標所在行 n dd 刪除游標所在行開始的n行 字串 查詢游標之後的字串 g 游標移動到檔案尾 u 取消前乙個動作 h 游標左移乙個字元 j 游標下...

vi文字編輯器

vi是乙個強大的常用的文字編輯器,vim是高階版的vi vi test.txt 進入vi的一般模式,如果test.txt檔案存在則開啟,如果不存在則會建立 例1 查詢字母a 輸入 輸入 a 即 a 例2 查詢空格 輸入 輸入 n 即 n 例3 查詢響應時間大於400的,格式為cos 4xx 運用正規...