Centos常用命令之:VI


在Linux中,對文件內容的編輯莫過去vi命令了,它是每個發布版本中的標配。並且功能強大。

在vi中一共有三種模式,一般模式(命令參照),編輯模式(命令參照)與命令模式(命令參照)。

◇一般模式:當我們用vi打開一個文檔的時候,就是一般模式了,這個時候,我們可以刪除字符,刪除行,也可以用上下左右來操作光標。也可以復制粘貼。

◇編輯模式:當在一般模式下按下【i, I, o, O, a, A, r, R】的時候,就進入編輯模式了。這個時候屏幕的最下方會出現【-- 插入 --】【-- 替換 --】(語言根據系統的設置可能會不一樣)的提示信息。這個時候就可以編輯文本的內容了。按下[Esc]鍵即可以退出編輯模式。

◇命令模式:在一般模式下按下【:/?】三個字符中的任意一個,光標就會移動到最后一行,這就進入了命令模式。可以進行一些保存,退出,搜索,替換等等功能。

三種關系可以用下圖來表示:

          (圖片來自鳥哥的私房菜)

接下來就是體驗一番吧。

 

通過 vi 文件名 的方式我們可以進入編輯該文件。如果該文件存在,則打開編輯,如果不存在則新建一個。

進入后,在最后一行提示,新文件表示,這是在新建一個文件。這個時候,我們就是處於一般模式。

但是由於文件中暫時還沒有內容,所以,我們還不能移動光標到別的地方,或者刪除行或者刪除字符。

那,我們就先按[i],進入編輯模式。

可以看到,進入編輯模式后,最下面一行顯示了[-- 插入 --]的提示信息。接下來就輸入信息。(按回車鍵可以換行)。

輸入完成之后,我們按[Esc]鍵回到一般模式。

這樣我們就回到了一般模式,我們可以通過上下左右來移動光標,也可以試着用[x]鍵來刪除字符。或者雙擊[d]鍵來刪除行。

編輯完之后,接下來我們就應該要保存退出了。

這個時候我們就需要進入到命令模式,使用[:wq]來進入命令模式,並保存退出。

然后,回車,我們就可以保存退出了。

退出之后,我們用[ll]命令來查看,發現改文檔已經建立起來了。

 

經過上面的一番體驗之后,相信你是不是對vi的編輯已經略懂了呢,

是不是迫切的想知道還有什么命令呢?

別急,聽我慢慢道來。

◇一般模式

[h]或[←]:光標向左移動一個字符

[j]或[↓]:光標向下移動一個字符

[k]或[↑]:光標向上移動一個字符

[l]或[→]:光標向右移動一個字符

但是一個一個的移動貌似有點效率非常的低,這時候我們可以使用【數字加命令】的方式來移動。

比如:30j:向下移動30行   10→:向右移動10個字符

[Ctrl] + [f] :屏幕向下移動一頁,相當於[Page Down]

[Ctrl] + [b]:屏幕上移動一頁,相當於[Page UP]

[Ctrl] + [d]:屏幕向下移動半頁

[Ctrl] + [u]:屏幕向上移動半頁

[+]:光標移動到非空格符的下一列

[-]:光標移動到非空格符的上一列

n<space>:n代表數字,按下數字后,在按空格,光標會向右移動到這一行的n個字符。

0或[home]:這個是數字0,表示移動到這一行的最前面字符處。

$或[End]:移動到這一行的最后面字符處。

[H]:光標移動到這個屏幕的最上方那一行的第一個字符。

[M]:光標移動到這個屏幕的中央那一行的第一個字符

[L]:光標移動到這個屏幕的最下方那一行的第一個字符。

[G]:移動光標到這個文件的最后一行。

[nG]:你表示數字,移動到這個文檔的第n行

[gg]:移動到這個當好的第一行,相當於[1G]

[n<Enter>]:n表示數字,光標向下移動n行

 

□檢索與替換命令

[/word]:向光標之下尋找一個名稱為world的字符串

[?word]:向光標智商尋找一個名稱為word的字符串

[n]:這個n是英文按鍵,代表重復前一個搜尋的動作,假如說你用[/name]來搜尋name之后,可以按[n]來繼續查找下一個

[N]:這個和[n]相反,是用來查找上一個

[:n1,n2s/word1/word2/g]:n1和n2為兩個數字,表示在n1和n2行之間尋找word1這個字符串,並將該字符串替換為word2

[:1,$s/word1/word2/g]:從第一行到最后一行尋找word1字符串,並替換為word2

[:1,$s/word1/word2/gc]:從第一行到最后一行尋找word1字符串,並替換為word2,且在替換之前顯示提示字符,讓用戶來確認是否要替換。

 

□刪除復制命令

[x,X]:在一行當中,[x]表示向后刪除一個字符,相當於[del],[X]表示向前刪除一個字符,相當於[backspace]

[nx]:n為數字,表示向后連續刪除n個字符

[nX]:n為數字,表示向前連續刪除n個字符

[dd]:刪除游標所在的那一整行。

[ndd]:n為數字,刪除光標所在的行向下n行

[d1G]:刪除光標所在的行到第一行的所有數據(1G表示第一行)

[dG]:刪除光標所在行到最后一行的所有數據

[d$]:刪除光標所在處到改行的最后一個字符

[d0]:這個是數字0,刪除光標所在處到該行的最前面一個字符

[yy]:復制游標所在的那一行

[nyy]:n為數字。復制光標所在行向下n行

[y1G]:復制游標所在行到第一行的所有數據

[yG]:復制游標所在行到最后一行的所有數據

[y0]:復制光標所在字符到行首的所有數據

[y$]:復制光標所在字符到行尾的所有數據

[p,P]:p為將已復制的數據在光標下一行貼上,P為貼在光標的上一行,

[J]:將光標所在行與下一行的數據結合成一行

[c]:重復刪除多個數據,例如鄉下刪除10行[10cj]

[u]:復原前一個動作

[Ctrl + r]:重復上一個動作

[.]:這是個小數點,表示重復前一個動作  

 

編輯模式

在一般模式下按下面這些鍵就可以進入編輯模式。

[i,I]:進入插入模式,[i]為從光標所在處插入。[I]為在目前所在行的第一個非空格處開始插入

[a,A]:進入插入模式,[a]為從光標所在的下一個字符處開始插入,[A]為從光標所在行的最后一個字符處開始插入。

[o,O]:進入插入模式,[o]表示在目前光標所在的下一行處插入新的一行,[O]表示在目前光標所在處的上一行插入新的一行

[r,R]:進入替換模式,[r]表示取代光標所在的那一個字符一次,[R]會一直取代光標所在的文字,知道按下[Esc]為止。

[Esc]:退出編輯模式

 

命令模式

[:w]:保存,不退出

[:w!]:強制保存,即使權限是只讀的時候,也寫入

[:q]:退出vi

[:q!]:強制退出,比如有時我們修改了文檔,又不想保存

[:wq]:保存並退出,[:wq!]表示強制保存並退出

[ZZ]:表似乎檔案沒有變動,則不儲存離開,變動了,則存儲離開

[:w filename]:將編輯的數據儲存為另一個新的文檔

[:r filename]:在編輯的數據中,讀入另一個文檔的數據,內容加到游標所在行的后面

[:n1,n2 w filename]:將n1到n2的內容儲存到filename這個檔案

[:! command]:暫時離開vi到指令列模式下執行command的顯示結果。例如:[:! ls /home] 即可在vi中查看/home地下 ls的輸出結果

[:set nu]:顯示行號

[:set nonu]:取消顯示行號 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM