Vi操作備忘

2021-09-02 12:43:23 字數 3822 閱讀 8484

vi操作備忘

vi是linux系統裡面的乙個螢幕編輯程式,在終端中使用。vi對檔案的修改是在檔案的副本上進行的,除非編輯順利,並儲存之後才會用修改的副本替代原始檔案,否則,修改的內容會全部放棄,重新回到原始檔案。

vi是乙個優秀的**工程師所必備的技能。故在此簡述vi備忘。

1、可以在終端上,輸入以下形式的命令列,進入vi編輯程式:

vi filename

vi有三種操作模式,分別為編輯模式、插入模式還有命令模式。

2、編輯模式

編輯模式的主要用途是,在被編輯的檔案中移動游標的位置。

2.1

k  上移 j     下移

h    左移l     右移

ctrl+f   在檔案中前移一頁

ctrl+b  在檔案中後移一頁

h   將游標移到螢幕上的起始行

m  將游標移到螢幕中間

l    將游標移到螢幕最後一行

h、l命令前面還可以加數字,表示移進螢幕的行數。比如3h是指移到第二行

w 右移游標到下一行字的開頭

e 右移游標到乙個字的末尾

b 左移游標到前乙個字的開頭

0 (零)左移游標到本行的開始

^ 游標移到航中第乙個非空字元

$ 右移游標到本行末尾

2.2、搜尋字串

/string 向前搜尋給定的字串string

?string 向後搜尋給定的字串string

n 向前或向後搜尋,找到字串下次出現的位置(當到達檔案末尾或開頭時,他將繞開到檔案的另一頭,從那裡開始搜尋上)

2.3、替換和刪除

rc 用c替換當前游標指示的字元

x 刪除當前游標位置的字元

dw 刪除游標右面的字

db 刪除游標前面的字

dd 刪除游標所在的行,並去掉空隙

在上面的任何命令前面加上數字,他們的功能就會成倍增強。

其他不能加數字的刪除命令是:

d$ 從當前游標起刪除字元直至行的結束

d0 從當前游標起刪除字元直到行的開始

j 刪除本行的回車字元(cr),並和下一行合併。

2.4、剪下和貼上

p(小寫) 將緩衝區的內容貼上到當前游標的後面

p(大寫) 將緩衝區的內容貼上到當前游標的前面

yy 將當前行複製到剪下緩衝區

nyy 將n行複製到剪下緩衝區

2.5、撤銷和重複

u 撤銷前一條命令的結果

.  (點)重複最後一條修改正文的命令

3、插入模式

3.1

a      //

在當前游標位置的右邊新增文字

i       //在當前游標位置的左邊新增文字

a     //在當前行的末尾位置新增文字

i      //在當前行的開始處新增文字(非空字元的行首)

o     //在當前行的上面新建一行

o     //在當前行的下面新建一行

r    //替換(覆蓋)當前游標位置及後面的若干文字

j    //合併游標所在行及下一行為一行(依然在命令模式)

3.2正文替換

ns 用新正文替換游標後面的n個字元

ncw

替換游標後面的n個字

ncb

替換游標前面的n個字

ncd

替換下面的n行

c$ 用新正文替換從游標開始到本行末尾的所有字元

c0 替換從游標開始到本行開頭的所有字元

4、命令模式

所有命令皆以冒號(:)開頭

4.1

退出命令

:q          //退出編輯器,如果檔案已修改請使用下面的命令

:q!        //退出編輯器,且不儲存

:wq         //退出編輯器,且儲存檔案

4.2

檔案的使用

:w       //

儲存檔案

:w vpser.net //儲存至vpser.net檔案

:r file    //

將file檔案的內容讀入,放在當前游標行的後面

:e file   //

編輯新檔案file代替舊的內容

:f file    //

將當前正文的名稱改為file

:f    //

列印當前正文的名稱和狀態

:a,bw  file //

將a行到b行之間的內容寫到file檔案之中

4.3 行號

正在進行編輯的正文的所有行都有乙個行號與其對應。

:n  

將游標移到第n行

可以使用數值,表示絕對行號

句點表示當前游標所在行的行號

美元符號表示最後一行的行號

簡單數值表示式,作為行號

比如::.,.+4w myfile  //

從當前行開始將5行的內容寫入到myfile檔案之中

4.4字串搜尋

:/string/    

將游標前移到下乙個包含string字串的行

:?string?   

將游標後移到下乙個包含string字串的行

:/str1/,/str2/w  myfile          

將從包含str1的行到包含str2的行的正文寫入到myfile檔案裡面

包含特殊字元的搜尋字串,叫做規則表示式,正規表示式。可參考

:/^str/      

找出以str字串開頭的行

^        

放在字串開頭,匹配行首的字

$        

放在字串結尾,匹配行尾的字

\匹配乙個字的開頭

\>      

匹配乙個字的結尾

.     (

句點)匹配任何單一字元

[str]          

匹配str中的各個單一字元

[a-b]         

匹配a到b之間的任意字元

*             

匹配前乙個字元的0次或多次出現

\              

不管後面字元的特殊含義

4.5正文替換

:s/str1/str2/          用str2替換行中首次出現的str1

:s/str1/str2/g        用str2替換行中每乙個str1

:1,$s/str1/str2/g    用str2替換整個檔案中的str1

:g/str1/s//str2/g    用str2替換整個檔案中的str1

g放在命令的末尾表示在當前游標行中對搜尋字串的每一次出現重複使用本命令;g放在命令的開頭規定命令對檔案中所有包含搜尋字串的行進行替換操作。

4.6刪除正文

:d        刪除當前游標行

:.,$d

5、設定vi的內部變數

:set option

autoindent          自動縮排

ignorecase     不區分規則表示式的大小寫,noignorecase關閉本選項

number          行號

ruler               標尺。螢幕底行顯示游標行的行號以及在行中的位置。noruler關閉本選項。

tabstop          設定tab跳過的空格數。

6、shell切換

在編輯環境中執行linux命令。

:! command          執行command命令後回到編輯介面

vi操作備忘

x 到第x行 0 1到第一行 gg 到第一行 0 行首 行末 g 到最後一行 到最後一行 h 左 j 下 k 上 l 右 dd cc 刪除行 ndd 刪除n行 dw 刪除所在單詞 cw 刪除所在單詞並進入編輯模式 x 刪除游標後的乙個字元 x 刪除游標前的乙個字元 nx 刪除n個字元 d c 刪除本...

vi命令備忘

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

VI命令學習備忘

b vi編輯器的操作 b list color olive 儲存 w color color olive 退出 q color color olive 儲存退出 wq color color olive 不儲存強制退出 q color color olive 儲存強制退出 wq color colo...