vi編輯器,一般稱之爲vi,是一種普遍存在於各類UNIX和Linux系統中的文本編輯程序。它的功能十分強大,可是命令繁多,不容易掌握,它能夠執行輸出、刪除、查找、替換、塊操做等衆多文本操做,並且用戶能夠根據本身的須要對其進行定製,這是其餘編輯程序所沒有的。vi不是基於窗口的,因此,這個多用途編輯程序能夠用於在任何類型的終端上編輯各式各樣的文件。html
一、命令模式(command mode)—執行命令編輯器
在該模式中,能夠輸入命令來執行許多種功能。控制屏幕光標的移動,字符、字或行的刪除,移動複製某區段及進入Insert mode下,或者到 last line mode。ui
二、輸入模式(Insert mode)—輸入文本spa
vi被運行時,一般處在命令模式下,鍵入如下命令 可使vi退出命令模式,進入輸入模式:I(i)、A(a)、O(o)。命令行
三、末行模式(last line mode)—執行待定命令htm
將文件保存或退出vi,也能夠設置編輯環境,如尋找字符串、列出行號……等。不過通常咱們在使用時把vi簡化成兩個模式,就是將末行模式(last line mode)也算入命令行模式command mode)。字符串
1. vi的啓動get
輸入vi命令後,便進入全屏幕編輯環境,此時的狀態爲命令模式。string
(1) viit
進入vi的一個臨時緩衝區,光標定位在該緩衝區第1行第1列的位置上。
(2) vi file1
若是file1文件不存在,將創建此文件;如該文件存在,則將其拷貝到一個臨時緩衝區。光標定位在該緩衝區第1行第1列的位置上。
(3) vi + file1
若是file1文件不存在,將創建此文件;如該文件存在,則將其拷貝到一個臨時緩衝區。光標定位在文件最後1行第1列的位置上。
(4) vi +N file1(N:爲數字)
若是file1文件不存在,將創建此文件;如該文件存在,則將其拷貝到一個臨時緩衝區。光標定位在文件第N行第1列的位置上。
(5) vi +/string file1
若是file1文件不存在將創建此文件;如該文件存在則將其拷貝到一個臨時緩衝區。光標定位在文件中第一次出現字符串string的行首位置。
2. 退出vi(末行模式(last line mode))
建議在退出vi前,先按ESC鍵,以確保當前vi的狀態爲命令方式,而後再鍵入「:」(冒號),輸入下列命令,退出vi。
(1) :w
將編輯緩衝區的內容寫入文件,則新的內容就替代了原始文件。這時並無退出vi,必須進一步輸入下述命令才能退出vi:
:w filename(存入指定文件)
:q
(2) :wq
即將上面的兩步操做能夠合成一步來完成,先執行w,後執行q。
(3) :x和ZZ(注意: ZZ前面沒有「:」)
功能與(2)等價。
(4) :q!(或:quit)
強行退出vi,使被更新的內容不寫回文件中。僅鍵入命令:q時,如vi發現文本內容已被更改,將提示用戶使用「:quit」命令退出。
一、在文件中移動光標
h:向左移動一個字符
l:向右移動一個字符
j:向下移動一行
k:向上移動一行
^(即Shift+6):移動到當前行的開頭處
$(即Shift+4):移動到當前行的結尾處
H(大寫):使光標移動到屏幕的頂部
M(大寫):使光標移動到屏幕的中間
L(大寫):使光標移動到屏幕的底部
Ctrl+b:上滾一屏。
Ctrl+f:下滾一屏。
Ctrl+d:下滾半屏。
Ctrl+u: 上滾半屏。
二、插入文本
(1)添加:
●輸入a後,在光標的右邊插入文本
●輸入A,在一行的結尾處添加文本
(2)插入:
●經過在命令模式下輸入i,在光標的左邊插入文本
●經過在命令模式下輸入I,在行首插入文本
(3)插入新行:
●輸入o,在當前光標位置下面打開一行
●輸入O,在當前光標位置上面打開一行
三、撤消更改
(1)撤消前一個命令:在最後一個命令以後當即輸入u來撤消該命令
(2)重複某個命令:「.」
(3)撤消對一行的更改:輸入U來撤消你對一行所作的全部更改,這個命令只有在你沒將光標移動到該行之外時才生效。
四、刪除文本
(1)刪除一個字符:
●爲刪除一個字符,需將光標放置在要刪除的字符上並輸入x
●爲刪除光標以前(其左邊)的一個字符,需輸入X
(2)刪除一個詞或詞的部份內容:
●爲刪除一個詞,需將光標放置到該詞的開頭並輸入dw
●爲刪除詞的部份內容,需將光標放置到該詞要保存部分的右邊。輸入dw來刪除該詞餘下的部分
(3)刪除一行:將光標放置到該行的任意處並輸入dd
(4)刪除多行:ndd
(5)刪除行的部份內容:將光標放置到該行要保存部分的右邊,並輸入D。爲刪除光標左邊的全部內容,須將光標放置到該行要刪除部分的右邊,並輸入d0(d-零)。
(6)刪除到文件的結尾:爲刪除從當前行到文件結尾的全部內容,需輸入dG
五、複製和移動文本
●複製一行命令:yy
●粘貼命令:p
●移動文本:先將要移動的部分用刪除命令刪除,而後再粘貼就能夠了
●複製指定文件的內容
: r filename
六、查找一個字符串
●輸入/,並在/後面輸入要查找的串,而後按下回車
●輸入「n」跳轉到該串的下一個出現處
●輸入「N」跳轉到該串的上一個出現處
七、替換一個字符串
●在一行內替換頭一個字符串old爲新的字符串new
:s/old/new
●在一行內替換全部的字符串old爲新的字符串new
:s/old/new/g
●在兩行內替換全部的字符串old爲新的字符串new
:#,#s/old/new/g
●在文件內替換全部的字符串old爲新的字符串new
:%s/old/new/g
●進行全文替換時詢問用戶確認每一個替換需添加c選項
:%s/old/new/gc
八、設置vi
●顯示行號
:set number
●取消行號顯示
:set nonumber
●設置顯示用戶模式
:set showmode
●設置文件只讀
:set readonly