vi命令總結

2021-08-13 16:50:40 字數 3743 閱讀 8391

進入vi

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

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

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

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

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

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

儲存退出

w # 儲存當前檔案

w /tmp1 # 另存為/tmp1

20,59w /tmp1 # 僅將20-59行之間的記憶體另存為/tmp1

x 或 wq # 儲存退出

q # 退出vi

q! # 退出不儲存

!command # 執行shell命令command

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

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

w !sudo tee % # 儲存沒許可權時,可獲取許可權再儲存

游標移動

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 # 刪除輸入方式下所輸入的文字

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

%d # 刪除全部內容

1,$d # 刪除全部內容

複製貼上、剪下、移動

yy # 複製當前行

nyy # 複製當前行開始的n行

先按 v 然後方向鍵選擇區域,按 y 複製選中行

dd # 剪下當前行

p(小) # 在當前游標處下面貼上內容。

p(大) # 在當前游標處上面貼上內容

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

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

搜尋(查詢)

/abc # 從游標開始處向檔案尾搜尋abc

?abc # 從游標開始處向檔案首搜尋abc

/\/abc # 從游標開始處向檔案尾搜尋/abc,其中/是轉義

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

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

替換

s/vivian/sky/ # 替換當前行第乙個 vivian 為 sky

s/vivian/sky/g # 替換當前行所有 vivian 為 sky

n,$s/vivian/sky/ # 替換第 n 行開始到最後一行中每一行的第乙個 vivian 為 sky

n,$s/vivian/sky/g # 替換第 n 行開始到最後一行中每一行所有 vivian 為sky

%s/vivian/sky/g # (等同於 g/vivian/s//sky/) 替換每一行的每乙個 vivian 為 sky

s#vivian/#sky/# # 替換當前行第乙個 vivian/ 為 sky/(可以使用 #或+作為分隔符,此時中間出現的 / 不會作為分隔符)

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

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

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

暫存器

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

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

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

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

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

選項設定

set number # 顯示行號

set number! # 不顯示行號,其它選項同理加!號

set all # 列出所有選項設定情況

set term # 設定終端型別

set ignorance # 在搜尋中忽略大小寫

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

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

set terse # 顯示簡短的警告資訊

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

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

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

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

vi 命令總結

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

vi命令總結

vi模式分三種 命令模式 主要用於控制游標移動,可對文字進行複製,貼上,刪除,和查詢 底線模式 主要用於儲存和退出檔案,還可以讓使用者執行外部linux命令或跳轉到特定行 輸入模式 輸入文字內容 命令模式 命令模式 命令作用 命令作用 dd刪除 剪下 游標所在行 5dd刪除 剪下 從游標開始的5行 ...

vi命令總結

vi命令可以說是unix linux世界裡最常用的編輯檔案的命令了,但是因為它的命令集眾多,很多人都不習慣使用它,其實您只需要掌握基本命令,然後加以靈活運用,就會發現它的優勢,並會逐漸喜歡使用這種方法。本文旨在介紹vi的一些最常用命令和高階應用技巧。游標命令 k j h l 上 下 左 右游標移動命...