Linux vi 命令引數

2021-04-30 11:58:56 字數 2796 閱讀 5943

文字編輯器是所有計算機系統中最常用的一種工具。unix下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多,論壇裡好像這方面的總結不多,以下稍做總結,以資共享!渴望更正和補充!  

進入vi的命令 

vi filename :開啟或新建檔案,並將游標置於第一行首 

vi +n filename :開啟檔案,並將游標置於第n行首 

vi + filename :開啟檔案,並將游標置於最後一行首 

vi +/pattern filename:開啟檔案,並將游標置於第乙個與pattern匹配的串處 

vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename 

vi filename....filename :開啟多個檔案,依次進行編輯 

移動游標類命令

h :游標左移乙個字元 

l :游標右移乙個字元 

space:游標右移乙個字元 

backspace:游標左移乙個字元 

k或ctrl+p:游標上移一行 

j或ctrl+n :游標下移一行 

enter :游標下移一行 

w或w :游標右移乙個字至字首 

b或b :游標左移乙個字至字首 

e或e :游標右移乙個字至字尾 

) :游標移至句尾 

( :游標移至句首 

}:游標移至段落開頭 

{:游標移至段落結尾 

ng:游標移至第n行首 

n+:游標下移n行 

n-:游標上移n行 

n$:游標移至第n行尾 

h :游標移至螢幕頂行 

m :游標移至螢幕中間行 

l :游標移至螢幕最後行 

0:(注意是數字零)游標移至當前行首 

$:游標移至當前行尾 

螢幕翻滾類命令 

ctrl+u:向檔案首翻半屏 

ctrl+d:向檔案尾翻半屏 

ctrl+f:向檔案尾翻一屏 

ctrl+b;向檔案首翻一屏 

nz:將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部。 

插入文字類命令 

i :在游標前 

i :在當前行首 

a:游標後 

a:在當前行尾 

o:在當前行之下新開一行 

o:在當前行之上新開一行 

r:替換當前字元 

r:替換當前字元及其後的字元,直至按esc鍵 

s:從當前游標位置處開始,以輸入的文字替代指定數目的字元 

s:刪除指定數目的行,並以所輸入文字代替之 

ncw或ncw:修改指定數目的字 

ncc:修改指定數目的行 

刪除命令 

ndw或ndw:刪除游標處開始及其後的n-1個字 

do:刪至行首 

d$:刪至行尾 

ndd:刪除當前行及其後n-1行 

x或x:刪除乙個字元,x刪除游標後的,而x刪除游標前的 

ctrl+u:刪除輸入方式下所輸入的文字 

搜尋及替換命令 

/pattern:從游標開始處向檔案尾搜尋pattern 

?pattern:從游標開始處向檔案首搜尋pattern 

n:在同一方向重複上一次搜尋命令 

n:在反方向上重複上一次搜尋命令 

:s/p1/p2/g:將當前行中所有p1均用p2替代 

:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代 

:g/p1/s//p2/g:將檔案中所有p1均用p2替換 

選項設定 

all:列出所有選項設定情況 

term:設定終端型別 

ignorance:在搜尋中忽略大小寫 

list:顯示製表位(ctrl+i)和行尾標誌($) 

number:顯示行號 

report:顯示由面向行的命令修改過的數目 

terse:顯示簡短的警告資訊 

warn:在轉到別的檔案時若沒儲存當前檔案則顯示no write資訊 

nomagic:允許在搜尋模式中,使用前面不帶「/」的特殊字元 

nowrapscan:禁止vi在搜尋到達檔案兩端時,又從另一端開始 

mesg:允許vi顯示其他使用者用write寫到自己終端上的資訊 

最後行方式命令 

:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下 

:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下 

:n1,n2 d :將n1行到n2行之間的內容刪除 

:w :儲存當前檔案 

:e filename:開啟檔案filename進行編輯 

:x:儲存當前檔案並退出 

:q:退出vi 

:q!:不儲存檔案並退出vi 

:!command:執行shell命令command 

:n1,n2 w!command:將檔案中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個檔案內容作為command的輸入 

:r!command:將命令command的輸出結果放到當前行 

暫存器操作 

"?nyy:將當前行及其下n行的內容儲存到暫存器?中,其中?為乙個字母,n為乙個數字 

"?nyw:將當前行及其下n個字儲存到暫存器?中,其中?為乙個字母,n為乙個數字 

"?nyl:將當前行及其下n個字元儲存到暫存器?中,其中?為乙個字母,n為乙個數字 

"?p:取出暫存器?中的內容並將其放到游標位置處。這裡?可以是乙個字母,也可以是乙個數字 

ndd:將當前行及其下共n行文字刪除,並將所刪內容放到1號刪除暫存器中。

Linux VI 替換命令

vi vim 中可以使用 s 命令來替換字串。以前只會使用一種格式來全文替換,今天發現該命令有很多種寫法 vi 真是強大啊,還有很多需要學習 記錄幾種在此,方便以後查詢。s vivian sky 替換當前行第乙個 vivian 為 sky s vivian sky g 替換當前行所有 vivian ...

linux vi 命令大全

進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 vi r...

linux vi 替換命令

linux linux vi命令 vi vim 中可以使用 s 命令來替換字串。以前只會使用一種格式來全文替換,今天發現該命令有很多種寫法 vi 真是強大啊,還有很多需要學習 記錄幾種在此,方便以後查詢。s vivian sky 替換當前行第乙個 vivian 為 sky s vivian sky ...