vi編輯器命令

2022-08-19 05:24:07 字數 4888 閱讀 3880

linux下的文字編輯器有很多種,vi 是最常用的,也是各版本linux的標配。注意,vi 僅僅是乙個文字編輯器,可以給字元著色,可以自動補全,但是不像 windows 下的 word 有排版功能。

vi 是十年磨一劍的產品,雖然命令繁多,並且大多數功能都是依靠鍵盤輸入來完成,但是一旦你熟悉後,會發現 vi 的功能和效率是其他圖形介面編輯器無法比擬的。

vim 是viimproved 的縮寫,是 vi 的改進版。在linux中,vi 被認為是事實上的標準編輯器,因為:

命令描述

vi filename

如果filename存在,則開啟;否則會建立乙個新檔案再開啟。

vi -r filename

以唯讀模式(只能檢視不能編輯)開啟現有檔案。

view filename

以唯讀模式開啟現有檔案。

$vi testfile|~

~~~~

~~~~

~~~"testfile" [new file]

豎線(|)代表游標的位置;波浪號(~)代表該行沒有任何內容。如果沒有 ~,也看不到任何內容,那說明這一行肯定是有空白字元(空格、tab 縮排、換行符等)或不可見字元。

進一步了解 vi 之前先來了解一下 vi 的工作模式,vi 有三種工作模式:

1) 普通模式

由shell進入vi編輯器時,首先進入普通模式。在普通模式下,從鍵盤輸入任何字元都被當作命令來解釋。普通模式下沒有任何提示符,輸入命令後立即執行,不需要回車,而且輸入的字元不會在螢幕上顯示出來。

普通模式下可以執行命令、儲存檔案、移動游標、貼上複製等。

2) 編輯模式

編輯模式主要用於文字的編輯。該模式下使用者輸入的任何字元都被作為檔案的內容儲存起來,並在螢幕上顯示出來。

3) 命令模式

命令模式下,使用者可以對檔案進行一些高階處理。儘管普通模式下的命令可以完成很多功能,但要執行一些如字串查詢、替換、顯示行號等操作還是必須要進入命令模式。

注意:有些教程中稱有兩種工作模式,是把命令模式合併到普通模式。

工作模式切換:

一般在命令模式下退出 vi 編輯器。

退出命令說明q

如果檔案未被修改,會直接退回到shell;否則提示儲存檔案。

q!強行退出,不儲存修改內容。

wqw 命令儲存檔案,q 命令退出 vi,合起來就是儲存並退出。

zz儲存並退出,相當於 wq,但是更加方便。

退出之前,你也可以在 w 命令後面指定乙個檔名,將檔案另存為新檔案,例如:

w filename2
將當前檔案另存為 filename2。

注意:vi 編輯檔案時,使用者的操作都是基於緩衝區中的副本進行的。如果退出時沒有儲存到磁碟,則緩衝區中的內容就會被丟失。

為了不影響檔案內容,必須在普通模式(按兩次 esc 鍵)下移動游標。使用下表中的命令每次可以移動乙個字元:

命令描述

k向上移動游標(移動一行)

j向下移動游標(移動一行)

h向左移動游標(移動乙個字元)

l向右移動游標(移動乙個字元)

當然,還有很多其他命令來移動游標,不過記住,一定要在普通模式(按兩次 esc 鍵)下。

用來移動游標的命令

命令說明

0 或 |

將游標定位在一行的開頭。

$將游標定位在一行的末尾。

w定位到下乙個單詞。

b定位到上乙個單詞。

(定位到一句話的開頭,句子是以 ! . ? 三種符號來界定的。

)定位到一句話的結尾。

移動到段落結束。&&&&&&&&&

[[回到段落的開頭處。&&&&&&&&&&

]]向前移到下乙個段落的開頭處。&&&&&&&&&&

n|移動到第 n 列(當前行)。

1g移動到檔案第一行。

g移動到檔案最後一行。

ng移動到檔案第 n 行。

:n移動到檔案第 n 行。

h移動到螢幕頂部。

nh移動到距離螢幕頂部第 n 行的位置。

m移動到螢幕中間。

l移動到螢幕底部。

nl移動到距離螢幕底部第 n 行的位置。

:xx 是乙個數字,表示移動到行號為 x 的行。

有一些控制命令可以與 ctrl 鍵組合使用,如下:

命令描述

ctrl+d

向前滾動半屏

ctrl+f

向前滾動全屏

ctrl+u

向後滾動半屏

ctrl+b

向後滾動整屏

ctrl+e

向上滾動一行

ctrl+y

向下滾動一行

ctrl+i

重新整理螢幕

切換到編輯模式下才能編輯檔案。有很多命令可以從普通模式切換到編輯模式,如下所示:

命令描述

i在當前游標位置之前插入文字

i在當前行的開頭插入文字

a在當前游標位置之後插入文字

a在當前行的末尾插入文字

o在當前位置下面建立一行

o在當前位置上面建立一行

下面的命令,可以刪除檔案中的字元或行:

命令說明

x刪除當前游標下的字元

x刪除游標前面的字元

dw刪除從當前游標到單詞結尾的字元

d^刪除從當前游標到行首的字元

d$刪除從當前游標到行尾的字元

d刪除從當前游標到行尾的字元

dd刪除當前游標所在的行

可以在命令前面新增乙個數字字首,表示重複操作的次數,例如,2x  表示連續兩次刪除游標下的字元,2dd 表示連續兩次刪除游標所在的行。

建議各位讀者多加練習上面的命令,再進一步深入學習。

如果你希望對字元、單詞或行進行修改,可以使用下面的命令:

命令描述

cc刪除當前行,並進入編輯模式。

cw刪除當前字(單詞),並進入編輯模式。

r替換當前游標下的字元。

r從當前游標開始替換字元,按 esc 鍵退出。

s用輸入的字元替換當前字元,並進入編輯模式。

s用輸入的文字替換當前行,並進入編輯模式。

vi 中的複製貼上命令:

命令描述

yy複製當前行

nyy複製n行

yw複製乙個字(單詞)

nyw複製n行

p將複製的文字貼上到游標後面

p將複製的文字貼上到游標前面

下面的一些命令雖然看起來有些古怪,但是會讓你的工作更有效率,如果你是 vi 重度使用者,就了解一下吧。

命令說明

j將當前行和下一行連線為一行

<<

將當前行左移乙個單位(乙個縮排寬度)

>>

將當前行右移乙個單位(乙個縮排寬度)

~改變當前字元的大小寫

^gctrl+g組合鍵可以顯示當前檔名和狀態

u撤銷對當前行所做的修改

u撤銷上次操作,再次按 'u' 恢復該次操作

:f以百分號(%)的形式顯示當前游標在檔案中的位置、檔名和檔案的總行數

:f filename

將檔案重新命名為 filename

:w filename

儲存修改到 filename

:e filename

開啟另乙個檔名為 filename 的檔案

:cd dirname

改變當前工作目錄到 dirname

:e #

在兩個開啟的檔案之間進行切換

:n如果用 vi 開啟了多個檔案,可以使用 :n 切換到下乙個檔案

:p如果用 vi 開啟了多個檔案,可以使用 :n 切換到上乙個檔案

:n如果用 vi 開啟了多個檔案,可以使用 :n 切換到上乙個檔案

:r file

讀取檔案並在當前行的後邊插入

:nr file

讀取檔案並在第 n 行後邊插入

部分特殊字元列表

字元說明

^匹配一行的開頭

.匹配乙個字元

*匹配0個或多個字元

$匹配一行的結尾

[ ]匹配一組字元

如果希望搜尋某行中的單個字元,可以使用 f 或 f 命令,f 向上搜尋,f 向下搜尋,並且會把游標定位到匹配的字元。

也可以使用 t 或 t 命令:t 命令向上搜尋,並把游標定位到匹配字元的前面;t 命令向下搜尋,並把游標定位到匹配字元的後面。

set 命令可以對 vi 編輯器進行一些設定。使用 set 命令需要進入命令模式。

:set 命令選項

命令說明

:set ic

搜尋時忽略大小寫。

:set ai

設定自動縮排(自動對齊)。

:set noai

取消自動縮排(自動對齊)。

:set nu

顯示行號。

:set sw

設定縮排的空格數,例如,將縮排空格數設定為4::set sw=4。

:set ws

:set wm

設定自動換行,例如,設定距離邊際2個字元時換行::set wm=2 。

:set ro

將檔案型別改為唯讀。

:set term

輸出終端型別。

:set bf

忽略輸入的控制字元,如 bel(響鈴)、bs(退格)、cr(回車)等。

切換到命令模式,再輸入 ! 命令即可執行 linux 命令。

例如,儲存檔案前,如果希望檢視該檔案是否存在,那麼輸入

:! ls
即可列出當前目錄下的檔案。

按任意鍵回到 vi 編輯器。

切換到命令模式,再輸入 s/ 命令即可對文字進行替換。語法為:

:s/search/replace/g
search 為檢索的文字,replace 為要替換的文字,g 表示全域性替換。

vi 編輯器的使用講解完畢,但是請記住下面幾點:

vi編輯器命令

vi編輯器中有三種狀態模式 1.命令模式 2.輸入模式 3.末行模式 三種模式間的相互轉換 vi編輯器的啟動與退出 直接進入編輯環境 vi 進入編輯環境並開啟 新建 檔案 vi myfile 退出vi編輯環境 輸入末行命令放棄對檔案的修改,並退出編輯器 q 檔案儲存與另存為 儲存檔案 儲存對vi編輯...

vi編輯器命令

vi編輯器的文字說明 功能 命令模式 command mode 控制游標移動,刪除字元,段落複製。編輯模式 insert mode 新增文字及修改文字。末行模式 last line mode 儲存檔案,離開vi,以及其他設定。命令模式命令 命令 說明 h 將游標向左移動一格 l 將游標向右移動一格 ...

vi編輯器命令

發表於2011 02 22 crazyant 瀏覽 1,116次 vi編輯器的文字說明 功能 命令模式 command mode 控制游標移動,刪除字元,段落複製。編輯模式 insert mode 新增文字及修改文字。末行模式 last line mode 儲存檔案,離開vi,以及其他設定。命令模式...